OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 import 'dart:collection' show Queue; | 5 import 'dart:collection' show Queue; |
6 | 6 |
7 import '../common.dart'; | 7 import '../common.dart'; |
8 import '../common/backend_api.dart' show ForeignResolver; | 8 import '../common/backend_api.dart' show ForeignResolver; |
9 import '../common/registry.dart' show Registry; | 9 import '../common/registry.dart' show Registry; |
10 import '../common/resolution.dart' show Resolution; | 10 import '../common/resolution.dart' show Resolution; |
(...skipping 465 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
476 } else if (type == coreTypes.numType) { | 476 } else if (type == coreTypes.numType) { |
477 backend.registerInstantiatedType( | 477 backend.registerInstantiatedType( |
478 coreTypes.doubleType, world, registry); | 478 coreTypes.doubleType, world, registry); |
479 backend.registerInstantiatedType(coreTypes.intType, world, registry); | 479 backend.registerInstantiatedType(coreTypes.intType, world, registry); |
480 } else if (type == coreTypes.stringType) { | 480 } else if (type == coreTypes.stringType) { |
481 backend.registerInstantiatedType(type, world, registry); | 481 backend.registerInstantiatedType(type, world, registry); |
482 } else if (type == coreTypes.nullType) { | 482 } else if (type == coreTypes.nullType) { |
483 backend.registerInstantiatedType(type, world, registry); | 483 backend.registerInstantiatedType(type, world, registry); |
484 } else if (type == coreTypes.boolType) { | 484 } else if (type == coreTypes.boolType) { |
485 backend.registerInstantiatedType(type, world, registry); | 485 backend.registerInstantiatedType(type, world, registry); |
486 } else if (compiler.types | 486 } else if (compiler.types.isSubtype( |
487 .isSubtype(type, backend.listImplementation.rawType)) { | 487 type, backend.backendClasses.listImplementation.rawType)) { |
488 backend.registerInstantiatedType(type, world, registry); | 488 backend.registerInstantiatedType(type, world, registry); |
489 } | 489 } |
490 // TODO(johnniwinther): Improve spec string precision to handle type | 490 // TODO(johnniwinther): Improve spec string precision to handle type |
491 // arguments and implements relations that preserve generics. Currently | 491 // arguments and implements relations that preserve generics. Currently |
492 // we cannot distinguish between `List`, `List<dynamic>`, and | 492 // we cannot distinguish between `List`, `List<dynamic>`, and |
493 // `List<int>` and take all to mean `List<E>`; in effect not including | 493 // `List<int>` and take all to mean `List<E>`; in effect not including |
494 // any native subclasses of generic classes. | 494 // any native subclasses of generic classes. |
495 // TODO(johnniwinther,sra): Find and replace uses of `List` with the | 495 // TODO(johnniwinther,sra): Find and replace uses of `List` with the |
496 // actual implementation classes such as `JSArray` et al. | 496 // actual implementation classes such as `JSArray` et al. |
497 enqueueUnusedClassesMatching((ClassElement nativeClass) { | 497 enqueueUnusedClassesMatching((ClassElement nativeClass) { |
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
673 List<Element> directSubtypes = | 673 List<Element> directSubtypes = |
674 emitter.directSubtypes.putIfAbsent(superclass, () => <ClassElement>[]); | 674 emitter.directSubtypes.putIfAbsent(superclass, () => <ClassElement>[]); |
675 directSubtypes.add(cls); | 675 directSubtypes.add(cls); |
676 } | 676 } |
677 | 677 |
678 void logSummary(log(message)) { | 678 void logSummary(log(message)) { |
679 log('Compiled ${registeredClasses.length} native classes, ' | 679 log('Compiled ${registeredClasses.length} native classes, ' |
680 '${unusedClasses.length} native classes omitted.'); | 680 '${unusedClasses.length} native classes omitted.'); |
681 } | 681 } |
682 } | 682 } |
OLD | NEW |