Index: pkg/compiler/lib/src/elements/elements.dart |
diff --git a/pkg/compiler/lib/src/elements/elements.dart b/pkg/compiler/lib/src/elements/elements.dart |
index 66eec37b0622ea31246e1db97a60f26a3c1b5b98..9fef6879146d974254a1602b439d3a7fa40fe738 100644 |
--- a/pkg/compiler/lib/src/elements/elements.dart |
+++ b/pkg/compiler/lib/src/elements/elements.dart |
@@ -9,7 +9,7 @@ import '../common/resolution.dart' show Resolution; |
import '../compiler.dart' show Compiler; |
import '../constants/constructors.dart'; |
import '../constants/expressions.dart'; |
-import '../core_types.dart' show CoreClasses; |
+import '../core_types.dart' show CoreClasses, CommonElements; |
import '../dart_types.dart'; |
import '../ordered_typeset.dart' show OrderedTypeSet; |
import '../resolution/scope.dart' show Scope; |
@@ -20,6 +20,7 @@ import '../tokens/token.dart' |
import '../tree/tree.dart'; |
import '../util/characters.dart' show $_; |
import '../util/util.dart'; |
+import '../world.dart' show ClosedWorld; |
import 'entities.dart'; |
import 'visitor.dart' show ElementVisitor; |
@@ -675,18 +676,20 @@ class Elements { |
return null; |
} |
- static bool isNumberOrStringSupertype(Element element, Compiler compiler) { |
- LibraryElement coreLibrary = compiler.commonElements.coreLibrary; |
+ static bool isNumberOrStringSupertype( |
+ Element element, CommonElements commonElements) { |
+ LibraryElement coreLibrary = commonElements.coreLibrary; |
return (element == coreLibrary.find('Comparable')); |
} |
- static bool isStringOnlySupertype(Element element, Compiler compiler) { |
- LibraryElement coreLibrary = compiler.commonElements.coreLibrary; |
+ static bool isStringOnlySupertype( |
+ Element element, CommonElements commonElements) { |
+ LibraryElement coreLibrary = commonElements.coreLibrary; |
return element == coreLibrary.find('Pattern'); |
} |
- static bool isListSupertype(Element element, Compiler compiler) { |
- LibraryElement coreLibrary = compiler.commonElements.coreLibrary; |
+ static bool isListSupertype(Element element, CommonElements commonElements) { |
+ LibraryElement coreLibrary = commonElements.coreLibrary; |
return element == coreLibrary.find('Iterable'); |
} |
@@ -770,23 +773,23 @@ class Elements { |
} |
static bool isFixedListConstructorCall( |
- Element element, Send node, Compiler compiler) { |
- return element == compiler.unnamedListConstructor && |
+ Element element, Send node, CommonElements commonElements) { |
+ return element == commonElements.unnamedListConstructor && |
node.isCall && |
!node.arguments.isEmpty && |
node.arguments.tail.isEmpty; |
} |
static bool isGrowableListConstructorCall( |
- Element element, Send node, Compiler compiler) { |
- return element == compiler.unnamedListConstructor && |
+ Element element, Send node, CommonElements commonElements) { |
+ return element == commonElements.unnamedListConstructor && |
node.isCall && |
node.arguments.isEmpty; |
} |
static bool isFilledListConstructorCall( |
- Element element, Send node, Compiler compiler) { |
- return element == compiler.filledListConstructor && |
+ Element element, Send node, CommonElements commonElements) { |
+ return element == commonElements.filledListConstructor && |
node.isCall && |
!node.arguments.isEmpty && |
!node.arguments.tail.isEmpty && |
@@ -794,17 +797,17 @@ class Elements { |
} |
static bool isConstructorOfTypedArraySubclass( |
- Element element, Compiler compiler) { |
- if (compiler.commonElements.typedDataLibrary == null) return false; |
+ Element element, ClosedWorld closedWorld) { |
+ if (closedWorld.commonElements.typedDataLibrary == null) return false; |
if (!element.isConstructor) return false; |
ConstructorElement constructor = element.implementation; |
constructor = constructor.effectiveTarget; |
ClassElement cls = constructor.enclosingClass; |
- return cls.library == compiler.commonElements.typedDataLibrary && |
- compiler.backend.isNative(cls) && |
- compiler.closedWorld |
- .isSubtypeOf(cls, compiler.commonElements.typedDataClass) && |
- compiler.closedWorld.isSubtypeOf(cls, compiler.coreClasses.listClass) && |
+ return cls.library == closedWorld.commonElements.typedDataLibrary && |
+ closedWorld.backendClasses.isNative(cls) && |
+ closedWorld.isSubtypeOf( |
+ cls, closedWorld.commonElements.typedDataClass) && |
+ closedWorld.isSubtypeOf(cls, closedWorld.coreClasses.listClass) && |
constructor.name == ''; |
} |