| Index: pkg/compiler/lib/src/inferrer/simple_types_inferrer.dart
|
| diff --git a/pkg/compiler/lib/src/inferrer/simple_types_inferrer.dart b/pkg/compiler/lib/src/inferrer/simple_types_inferrer.dart
|
| index f11cb3f322fa6309a24949c6d401d5ae8ffb75f2..086edfbec59ad5e6e62b0ee33f3bd9b2c7828370 100644
|
| --- a/pkg/compiler/lib/src/inferrer/simple_types_inferrer.dart
|
| +++ b/pkg/compiler/lib/src/inferrer/simple_types_inferrer.dart
|
| @@ -15,6 +15,9 @@ import '../compiler.dart' show
|
| import '../constants/values.dart' show
|
| ConstantValue,
|
| IntConstantValue;
|
| +import '../core_types.dart' show
|
| + CoreClasses,
|
| + CoreTypes;
|
| import '../cps_ir/cps_ir_nodes.dart' as cps_ir show
|
| Node;
|
| import '../dart_types.dart' show
|
| @@ -62,7 +65,7 @@ class TypeMaskSystem implements TypeSystem<TypeMask> {
|
| DartType annotation,
|
| {bool isNullable: true}) {
|
| if (annotation.treatAsDynamic) return type;
|
| - if (annotation.element == compiler.objectClass) return type;
|
| + if (annotation.isObject) return type;
|
| TypeMask otherType;
|
| if (annotation.isTypedef || annotation.isFunctionType) {
|
| otherType = functionType;
|
| @@ -207,6 +210,10 @@ abstract class InferrerEngine<T, V extends TypeSystem>
|
| : this.compiler = compiler,
|
| this.classWorld = compiler.world;
|
|
|
| + CoreClasses get coreClasses => compiler.coreClasses;
|
| +
|
| + CoreTypes get coreTypes => compiler.coreTypes;
|
| +
|
| /**
|
| * Records the default type of parameter [parameter].
|
| */
|
| @@ -388,20 +395,20 @@ abstract class InferrerEngine<T, V extends TypeSystem>
|
| for (var type in typesReturned) {
|
| T mappedType;
|
| if (type == native.SpecialType.JsObject) {
|
| - mappedType = types.nonNullExact(compiler.objectClass);
|
| - } else if (type.element == compiler.stringClass) {
|
| + mappedType = types.nonNullExact(coreClasses.objectClass);
|
| + } else if (type == coreTypes.stringType) {
|
| mappedType = types.stringType;
|
| - } else if (type.element == compiler.intClass) {
|
| + } else if (type == coreTypes.intType) {
|
| mappedType = types.intType;
|
| - } else if (type.element == compiler.numClass ||
|
| - type.element == compiler.doubleClass) {
|
| + } else if (type == coreTypes.numType ||
|
| + type == coreTypes.doubleType) {
|
| // Note: the backend double class is specifically for non-integer
|
| // doubles, and a native behavior returning 'double' does not guarantee
|
| // a non-integer return type, so we return the number type for those.
|
| mappedType = types.numType;
|
| - } else if (type.element == compiler.boolClass) {
|
| + } else if (type == coreTypes.boolType) {
|
| mappedType = types.boolType;
|
| - } else if (type.element == compiler.nullClass) {
|
| + } else if (type == coreTypes.nullType) {
|
| mappedType = types.nullType;
|
| } else if (type.isVoid) {
|
| mappedType = types.nullType;
|
|
|