Chromium Code Reviews| Index: sdk/lib/_internal/compiler/implementation/enqueue.dart |
| diff --git a/sdk/lib/_internal/compiler/implementation/enqueue.dart b/sdk/lib/_internal/compiler/implementation/enqueue.dart |
| index e3e9e64d4f6e016fcccffbf8efc37415944dcc20..d68333a3a997d389ad62138f2fbd18ce055338e3 100644 |
| --- a/sdk/lib/_internal/compiler/implementation/enqueue.dart |
| +++ b/sdk/lib/_internal/compiler/implementation/enqueue.dart |
| @@ -117,7 +117,12 @@ abstract class Enqueuer { |
| elements.registerDependency(cls); |
| cls.ensureResolved(compiler); |
| universe.instantiatedTypes.add(type); |
| - if (!cls.isAbstract(compiler)) { |
| + if (!cls.isAbstract(compiler) |
| + // We can't use the closed-world assumption with native abstract |
| + // classes; a native abstract class may have non-abstract subclasses |
| + // not declared to the program. Instances of these classes are |
| + // indistinguishable from the abstract class. |
| + || cls.isNative()) { |
|
ngeoffray
2013/09/10 11:55:37
Could we avoid marking the native classes abstract
|
| universe.instantiatedClasses.add(cls); |
| } |
| onRegisterInstantiatedClass(cls); |