Index: sdk/lib/_internal/compiler/implementation/types/types.dart |
=================================================================== |
--- sdk/lib/_internal/compiler/implementation/types/types.dart (revision 30666) |
+++ sdk/lib/_internal/compiler/implementation/types/types.dart (working copy) |
@@ -53,8 +53,11 @@ |
} |
TypeMask dynamicTypeCache; |
+ TypeMask nonNullTypeCache; |
TypeMask nullTypeCache; |
TypeMask intTypeCache; |
+ TypeMask uint32TypeCache; |
+ TypeMask uint31TypeCache; |
TypeMask doubleTypeCache; |
TypeMask numTypeCache; |
TypeMask boolTypeCache; |
@@ -75,14 +78,37 @@ |
return dynamicTypeCache; |
} |
+ TypeMask get nonNullType { |
+ if (nonNullTypeCache == null) { |
+ nonNullTypeCache = new TypeMask.nonNullSubclass(compiler.objectClass); |
+ } |
+ return nonNullTypeCache; |
+ } |
+ |
TypeMask get intType { |
if (intTypeCache == null) { |
- intTypeCache = new TypeMask.nonNullExact( |
+ intTypeCache = new TypeMask.nonNullSubclass( |
compiler.backend.intImplementation); |
} |
return intTypeCache; |
} |
+ TypeMask get uint32Type { |
+ if (uint32TypeCache == null) { |
+ uint32TypeCache = new TypeMask.nonNullSubclass( |
+ compiler.backend.uint32Implementation); |
+ } |
+ return uint32TypeCache; |
+ } |
+ |
+ TypeMask get uint31Type { |
+ if (uint31TypeCache == null) { |
+ uint31TypeCache = new TypeMask.nonNullExact( |
+ compiler.backend.uint31Implementation); |
+ } |
+ return uint31TypeCache; |
+ } |
+ |
TypeMask get doubleType { |
if (doubleTypeCache == null) { |
doubleTypeCache = new TypeMask.nonNullExact( |