Index: sdk/lib/_internal/compiler/implementation/native_handler.dart |
diff --git a/sdk/lib/_internal/compiler/implementation/native_handler.dart b/sdk/lib/_internal/compiler/implementation/native_handler.dart |
index 038fbdd6872687704bf542294180f5851ac18107..0c1579b538351b24c9572dfdf7ea94f6632210af 100644 |
--- a/sdk/lib/_internal/compiler/implementation/native_handler.dart |
+++ b/sdk/lib/_internal/compiler/implementation/native_handler.dart |
@@ -63,7 +63,7 @@ class NativeEnqueuer { |
} |
-class NativeEnqueuerBase implements NativeEnqueuer { |
+abstract class NativeEnqueuerBase implements NativeEnqueuer { |
/** |
* The set of all native classes. Each native class is in [nativeClasses] and |
@@ -303,8 +303,8 @@ class NativeCodegenEnqueuer extends NativeEnqueuerBase { |
super.processNativeClasses(libraries); |
// HACK HACK - add all the resolved classes. |
- for (final classElement |
- in compiler.enqueuer.resolution.nativeEnqueuer.registeredClasses) { |
+ NativeEnqueuerBase enqueuer = compiler.enqueuer.resolution.nativeEnqueuer; |
+ for (final classElement in enqueuer.registeredClasses) { |
if (unusedClasses.contains(classElement)) { |
enqueueClass(classElement, 'was resolved'); |
} |
@@ -382,10 +382,10 @@ void maybeEnableNative(Compiler compiler, |
class NativeBehavior { |
/// [DartType]s or [SpecialType]s returned or yielded by the native element. |
- final Collection typesReturned = []; |
+ final List typesReturned = []; |
/// [DartType]s or [SpecialType]s instantiated by the native element. |
- final Collection typesInstantiated = []; |
+ final List typesInstantiated = []; |
static final NativeBehavior NONE = new NativeBehavior(); |
@@ -432,8 +432,8 @@ class NativeBehavior { |
compiler.cancel("Unexpected JS first argument", node: firstArg); |
} |
- static NativeBehavior ofMethod(Element method, Compiler compiler) { |
- DartType type = method.computeType(compiler); |
+ static NativeBehavior ofMethod(FunctionElement method, Compiler compiler) { |
+ FunctionType type = method.computeType(compiler); |
var behavior = new NativeBehavior(); |
behavior.typesReturned.add(type.returnType); |
behavior._capture(type, compiler); |
@@ -479,14 +479,11 @@ class NativeBehavior { |
return e.computeType(compiler); |
} |
- var creates = |
- _collect(element, compiler, |
- compiler.enqueuer.resolution.nativeEnqueuer.annotationCreatesClass, |
- lookup); |
- var returns = |
- _collect(element, compiler, |
- compiler.enqueuer.resolution.nativeEnqueuer.annotationReturnsClass, |
- lookup); |
+ NativeEnqueuerBase enqueuer = compiler.enqueuer.resolution.nativeEnqueuer; |
+ var creates = _collect(element, compiler, enqueuer.annotationCreatesClass, |
+ lookup); |
+ var returns = _collect(element, compiler, enqueuer.annotationReturnsClass, |
+ lookup); |
if (creates != null) { |
typesInstantiated..clear()..addAll(creates); |
@@ -516,8 +513,9 @@ class NativeBehavior { |
var fields = value.fields; |
// TODO(sra): Better validation of the constant. |
if (fields.length != 1 || fields[0] is! StringConstant) { |
+ PartialMetadataAnnotation partial = annotation; |
compiler.cancel( |
- 'Annotations needs one string: ${annotation.parseNode(compiler)}'); |
+ 'Annotations needs one string: ${partial.parseNode(compiler)}'); |
} |
String specString = fields[0].toDartString().slowToString(); |
for (final typeString in specString.split('|')) { |