| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 library universe; | 5 library universe; |
| 6 | 6 |
| 7 import '../elements/elements.dart'; | 7 import '../elements/elements.dart'; |
| 8 import '../dart2jslib.dart'; | 8 import '../dart2jslib.dart'; |
| 9 import '../dart_types.dart'; | 9 import '../dart_types.dart'; |
| 10 import '../types/types.dart'; | 10 import '../types/types.dart'; |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 86 * to find all live closure instances. | 86 * to find all live closure instances. |
| 87 */ | 87 */ |
| 88 final Set<LocalFunctionElement> allClosures = new Set<LocalFunctionElement>(); | 88 final Set<LocalFunctionElement> allClosures = new Set<LocalFunctionElement>(); |
| 89 | 89 |
| 90 /** | 90 /** |
| 91 * Set of methods in instantiated classes that are potentially | 91 * Set of methods in instantiated classes that are potentially |
| 92 * closurized. | 92 * closurized. |
| 93 */ | 93 */ |
| 94 final Set<Element> closurizedMembers = new Set<Element>(); | 94 final Set<Element> closurizedMembers = new Set<Element>(); |
| 95 | 95 |
| 96 bool usingFactoryWithTypeArguments = false; | |
| 97 | |
| 98 /// All directly instantiated classes, that is, classes with a generative | 96 /// All directly instantiated classes, that is, classes with a generative |
| 99 /// constructor that has been called directly and not only through a | 97 /// constructor that has been called directly and not only through a |
| 100 /// super-call. | 98 /// super-call. |
| 101 // TODO(johnniwinther): Improve semantic precision. | 99 // TODO(johnniwinther): Improve semantic precision. |
| 102 Iterable<ClassElement> get directlyInstantiatedClasses { | 100 Iterable<ClassElement> get directlyInstantiatedClasses { |
| 103 return _directlyInstantiatedClasses; | 101 return _directlyInstantiatedClasses; |
| 104 } | 102 } |
| 105 | 103 |
| 106 /// All instantiated classes, either directly, as superclasses or as | 104 /// All instantiated classes, either directly, as superclasses or as |
| 107 /// supertypes. | 105 /// supertypes. |
| (...skipping 732 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 840 | 838 |
| 841 Selector extendIfReachesAll(Compiler compiler) { | 839 Selector extendIfReachesAll(Compiler compiler) { |
| 842 bool canReachAll = compiler.enabledInvokeOn | 840 bool canReachAll = compiler.enabledInvokeOn |
| 843 && mask.needsNoSuchMethodHandling(this, compiler.world); | 841 && mask.needsNoSuchMethodHandling(this, compiler.world); |
| 844 return canReachAll | 842 return canReachAll |
| 845 ? new TypedSelector( | 843 ? new TypedSelector( |
| 846 compiler.typesTask.dynamicType, this, compiler.world) | 844 compiler.typesTask.dynamicType, this, compiler.world) |
| 847 : this; | 845 : this; |
| 848 } | 846 } |
| 849 } | 847 } |
| OLD | NEW |