mirror of
https://github.com/dart-lang/sdk
synced 2024-11-02 12:24:24 +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 . |
||
---|---|---|
.. | ||
lib | ||
test | ||
LICENSE | ||
pubspec.yaml | ||
README.md |
js_ast
A library for creating JavaScript ASTs from templates.