Index: sdk/lib/_internal/compiler/implementation/js_backend/runtime_types.dart |
diff --git a/sdk/lib/_internal/compiler/implementation/js_backend/runtime_types.dart b/sdk/lib/_internal/compiler/implementation/js_backend/runtime_types.dart |
index 57c42339322d0d597375c9cd8e68ab1fd25a3f0d..135e489eaae8d7ec618f96bf3c5eb2b87e9668c0 100644 |
--- a/sdk/lib/_internal/compiler/implementation/js_backend/runtime_types.dart |
+++ b/sdk/lib/_internal/compiler/implementation/js_backend/runtime_types.dart |
@@ -144,7 +144,7 @@ class RuntimeTypes { |
Set<ClassElement> classesUsingTypeVariableTests = new Set<ClassElement>(); |
compiler.resolverWorld.isChecks.forEach((DartType type) { |
- if (type.kind == TypeKind.TYPE_VARIABLE) { |
+ if (type.isTypeVariable) { |
TypeVariableElement variable = type.element; |
classesUsingTypeVariableTests.add(variable.enclosingElement); |
} |
@@ -163,7 +163,7 @@ class RuntimeTypes { |
// Compute the set of all classes and methods that need runtime type |
// information. |
compiler.resolverWorld.isChecks.forEach((DartType type) { |
- if (type.kind == TypeKind.INTERFACE) { |
+ if (type.isInterfaceType) { |
InterfaceType itf = type; |
if (!itf.treatAsRaw) { |
potentiallyAddForRti(itf.element); |
@@ -176,7 +176,7 @@ class RuntimeTypes { |
// variables and function types containing type variables. |
potentiallyAddForRti(contextClass); |
} |
- if (type.kind == TypeKind.FUNCTION) { |
+ if (type.isFunctionType) { |
void analyzeMethod(TypedElement method) { |
DartType memberType = method.type; |
ClassElement contextClass = Types.getClassContext(memberType); |
@@ -227,7 +227,6 @@ class RuntimeTypes { |
// argument is a superclass of the element of an instantiated type. |
TypeCheckMapping result = new TypeCheckMapping(); |
for (ClassElement element in instantiated) { |
- if (element == compiler.dynamicClass) continue; |
if (checked.contains(element)) { |
result.add(element, element, null); |
} |
@@ -264,7 +263,7 @@ class RuntimeTypes { |
Set<DartType> instantiatedTypes = |
new Set<DartType>.from(universe.instantiatedTypes); |
for (DartType instantiatedType in universe.instantiatedTypes) { |
- if (instantiatedType.kind == TypeKind.INTERFACE) { |
+ if (instantiatedType.isInterfaceType) { |
InterfaceType interface = instantiatedType; |
FunctionType callType = interface.callType; |
if (callType != null) { |
@@ -313,7 +312,7 @@ class RuntimeTypes { |
{bool isTypeArgument: false}) { |
for (DartType type in types) { |
directCollector.collect(type, isTypeArgument: isTypeArgument); |
- if (type.kind == TypeKind.INTERFACE) { |
+ if (type.isInterfaceType) { |
ClassElement cls = type.element; |
for (DartType supertype in cls.allSupertypes) { |
superCollector.collect(supertype, isTypeArgument: isTypeArgument); |
@@ -395,6 +394,7 @@ class RuntimeTypes { |
String getTypeRepresentationForTypeConstant(DartType type) { |
JavaScriptBackend backend = compiler.backend; |
Namer namer = backend.namer; |
+ if (type.isDynamic) return namer.getRuntimeTypeName(null); |
String name = namer.uniqueNameForTypeConstantElement(type.element); |
if (!type.element.isClass) return name; |
InterfaceType interface = type; |