mirror of
https://github.com/dart-lang/sdk
synced 2024-09-16 00:39:49 +00:00
d15da7d900
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 . |
||
---|---|---|
build | ||
client | ||
docs/language | ||
pkg | ||
runtime | ||
samples | ||
samples-dev | ||
sdk | ||
tests | ||
third_party | ||
tools | ||
utils | ||
.clang-format | ||
.gitattributes | ||
.gitignore | ||
.gn | ||
.mailmap | ||
.packages | ||
.travis.yml | ||
AUTHORS | ||
BUILD.gn | ||
CHANGELOG.md | ||
codereview.settings | ||
create_sdk.gyp | ||
dart.gyp | ||
DEPS | ||
LICENSE | ||
PATENTS | ||
PRESUBMIT.py | ||
README.dart-sdk | ||
README.md | ||
WATCHLISTS |
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.