Find a file
Stephen Adams d15da7d900 dart2js: Capture typedef arguments once
The type Map<T, Foo<Set<T>>> contains one type variable referenced twice,
so there are two inputs into the HTypeInfoExpression instruction.

If Foo is a typedef, T can be reused, e.g.

    typedef E Foo<E>(E a, E b);

As the typedef is expanded (to Function(Set<T>, Set<T>) => Set<T>) it
should not consume additional types from the to-level input.  We
prevent this by capturing the types and using the captured type
expressions inside the typedef expansion.

TODO: We should make the type subexpression Foo<...> be a second
HTypeInfoExpression, with Set<T> as its input (a third
HTypeInfoExpression). This would share all the Set<T> subexpressions
instead of duplicating them. This would require HTypeInfoExpression
inputs to correspond to type variables AND typedefs.

BUG= https://github.com/dart-lang/sdk/issues/28749
R=efortuna@google.com

Review-Url: https://codereview.chromium.org/2812393003 .
2017-04-13 12:45:32 -07:00
build [infra] Fixes for cross-toolchains 2017-04-06 15:03:26 -07:00
client Ignore some uses of deprecated APIs. 2017-04-03 08:31:00 -07:00
docs/language Fix text around least upper bound. 2017-04-05 14:09:07 +02:00
pkg dart2js: Capture typedef arguments once 2017-04-13 12:45:32 -07:00
runtime First stab at #29153 range check in as-casts. Mostly working. 2017-04-13 10:44:57 -07:00
samples Create separate scopes for constructors, setters, and other members. 2017-04-05 16:07:32 +02:00
samples-dev Remove ie10 and opera sections from status files 2017-03-28 16:38:59 +02:00
sdk Fixed spelling mistakes in HttpRequest documentation. 2017-04-13 11:49:34 -07:00
tests dart2js: Capture typedef arguments once 2017-04-13 12:45:32 -07:00
third_party [infra] Fixes for cross-toolchains 2017-04-06 15:03:26 -07:00
tools Try work around issues executing powershell scripts on windows on the bots 2017-04-12 12:28:20 +02:00
utils Remove ie10 and opera sections from status files 2017-03-28 16:38:59 +02:00
.clang-format Add .clang-format and run clang-format on runtime/platform. 2016-11-03 14:25:16 -07:00
.gitattributes Restore line endings of files that should be CRLF. 2016-12-09 11:09:55 -08:00
.gitignore Git ignore vscode project files. 2017-03-23 15:26:06 -07:00
.gn Starting work on full GN build 2016-09-23 07:47:36 -07:00
.mailmap Add .mailmap file. 2015-05-18 19:33:16 +02:00
.packages Add support for the new function-type syntax. 2017-02-23 13:36:28 +01:00
.travis.yml Fix FF test status and re-enable 2017-03-14 09:28:10 -07:00
AUTHORS Add Cristian Almstrand to AUTHORS 2015-07-16 09:51:56 -07:00
BUILD.gn [Fuchsia] Bind Observatory to ipv4 any 2017-03-09 12:50:41 -08:00
CHANGELOG.md Bring in the latest Pub. 2017-04-07 17:57:04 -07:00
codereview.settings Remove trailing slash in codereview.settings to fix review url double slash 2015-10-01 07:27:13 -07:00
create_sdk.gyp Make list_files.py and list_dart_files.py return absolute paths for GN 2016-12-13 10:01:28 -08:00
dart.gyp Remove dart_noopt and related parts from the VM. 2017-01-11 16:55:55 -08:00
DEPS Bring in the latest Pub. 2017-04-07 17:57:04 -07:00
LICENSE Remove the Dromaeo and TodoMVC samples. 2016-01-11 13:09:26 -08:00
PATENTS
PRESUBMIT.py Print the correct path to dartfmt in the presubmit error message. 2017-04-04 16:13:31 -07:00
README.dart-sdk remove docgen from the sdk 2015-09-18 13:18:10 -07:00
README.md Update README.md (#28472) 2017-01-23 11:53:45 +01:00
WATCHLISTS Create watch list for messages.yaml. 2017-04-04 08:06:29 +02:00

Dart

Dart is an open-source, scalable programming language, with robust libraries and runtimes, for building web, server, and mobile apps.

Using Dart

Visit the dartlang.org to learn more about the language, tools, getting started, and more.

Browse pub.dartlang.org for more packages and libraries contributed by the community and the Dart team.

Building Dart

If you want to build Dart yourself, here is a guide to getting the source, preparing your machine to build the SDK, and building.

There are more documents on our wiki.

Contributing to Dart

The easiest way to contribute to Dart is to file issues.

You can also contribute patches, as described in Contributing.

License & patents

See LICENSE and PATENTS.