| Index: pkg/compiler/lib/src/native/enqueue.dart
|
| diff --git a/pkg/compiler/lib/src/native/enqueue.dart b/pkg/compiler/lib/src/native/enqueue.dart
|
| index 65a2daaaca15f0dc6a83bcd9a6e8c731bc17063e..e15f185cbee361d1669c4b225f0fdabedc79d9f5 100644
|
| --- a/pkg/compiler/lib/src/native/enqueue.dart
|
| +++ b/pkg/compiler/lib/src/native/enqueue.dart
|
| @@ -520,21 +520,12 @@ abstract class NativeEnqueuerBase implements NativeEnqueuer {
|
| .isSubtype(type, backend.listImplementation.rawType)) {
|
| backend.registerInstantiatedType(type, world, registry);
|
| }
|
| - // TODO(johnniwinther): Improve spec string precision to handle type
|
| - // arguments and implements relations that preserve generics. Currently
|
| - // we cannot distinguish between `List`, `List<dynamic>`, and
|
| - // `List<int>` and take all to mean `List<E>`; in effect not including
|
| - // any native subclasses of generic classes.
|
| - // TODO(johnniwinther,sra): Find and replace uses of `List` with the
|
| - // actual implementation classes such as `JSArray` et al.
|
| - enqueueUnusedClassesMatching((ClassElement nativeClass) {
|
| - InterfaceType nativeType = nativeClass.thisType;
|
| - InterfaceType specType = type.element.thisType;
|
| - return compiler.types.isSubtype(nativeType, specType);
|
| - }, cause, 'subtypeof($type)');
|
| - return;
|
| }
|
| - assert(type is VoidType || type is DynamicType);
|
| + assert(type is DartType);
|
| + enqueueUnusedClassesMatching(
|
| + (nativeClass) => compiler.types.isSubtype(nativeClass.thisType, type),
|
| + cause,
|
| + 'subtypeof($type)');
|
| }
|
|
|
| // Give an info so that library developers can compile with -v to find why
|
|
|