| Index: pkg/compiler/lib/src/resolution/members.dart
|
| diff --git a/pkg/compiler/lib/src/resolution/members.dart b/pkg/compiler/lib/src/resolution/members.dart
|
| index 90600657b467c1ea883e6f6b9703e9e68f43a1d0..13bcdd9efe8687cf0b27d33cfa03095406a518ba 100644
|
| --- a/pkg/compiler/lib/src/resolution/members.dart
|
| +++ b/pkg/compiler/lib/src/resolution/members.dart
|
| @@ -336,7 +336,8 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
|
| if (Elements.isUnresolved(element) && name == 'dynamic') {
|
| // TODO(johnniwinther): Remove this hack when we can return more complex
|
| // objects than [Element] from this method.
|
| - element = commonElements.typeClass;
|
| + ClassElement typeClass = commonElements.typeClass;
|
| + element = typeClass;
|
| // Set the type to be `dynamic` to mark that this is a type literal.
|
| registry.setType(node, const ResolutionDynamicType());
|
| }
|
| @@ -2085,8 +2086,9 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
|
| // directly on the constant expressions.
|
| node.isCall ? commonElements.typeType : type);
|
| AccessSemantics semantics = new ConstantAccess.dynamicTypeLiteral(constant);
|
| - return handleConstantTypeLiteralAccess(node, const PublicName('dynamic'),
|
| - commonElements.typeClass, type, semantics);
|
| + ClassElement typeClass = commonElements.typeClass;
|
| + return handleConstantTypeLiteralAccess(
|
| + node, const PublicName('dynamic'), typeClass, type, semantics);
|
| }
|
|
|
| /// Handle update to a type literal of the type 'dynamic'. Like `dynamic++` or
|
| @@ -2096,8 +2098,9 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
|
| ConstantExpression constant =
|
| new TypeConstantExpression(const ResolutionDynamicType());
|
| AccessSemantics semantics = new ConstantAccess.dynamicTypeLiteral(constant);
|
| - return handleConstantTypeLiteralUpdate(node, const PublicName('dynamic'),
|
| - commonElements.typeClass, type, semantics);
|
| + ClassElement typeClass = commonElements.typeClass;
|
| + return handleConstantTypeLiteralUpdate(
|
| + node, const PublicName('dynamic'), typeClass, type, semantics);
|
| }
|
|
|
| /// Handle access to a type literal of a class. Like `C` or
|
| @@ -3615,11 +3618,13 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
|
| if (!currentAsyncMarker.isYielding) {
|
| reporter.reportErrorMessage(node, MessageKind.INVALID_YIELD);
|
| }
|
| + ClassElement cls;
|
| if (currentAsyncMarker.isAsync) {
|
| - commonElements.streamClass.ensureResolved(resolution);
|
| + cls = commonElements.streamClass;
|
| } else {
|
| - commonElements.iterableClass.ensureResolved(resolution);
|
| + cls = commonElements.iterableClass;
|
| }
|
| + cls.ensureResolved(resolution);
|
| }
|
| visit(node.expression);
|
| return const NoneResult();
|
| @@ -3754,7 +3759,8 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
|
| if (!currentAsyncMarker.isAsync) {
|
| reporter.reportErrorMessage(node, MessageKind.INVALID_AWAIT);
|
| }
|
| - commonElements.futureClass.ensureResolved(resolution);
|
| + ClassElement futureClass = commonElements.futureClass;
|
| + futureClass.ensureResolved(resolution);
|
| }
|
| visit(node.expression);
|
| return const NoneResult();
|
| @@ -4135,7 +4141,7 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
|
| }
|
| }
|
| }
|
| - ResolutionDartType listType;
|
| + ResolutionInterfaceType listType;
|
| if (typeArgument != null) {
|
| if (node.isConst && typeArgument.containsTypeVariables) {
|
| reporter.reportErrorMessage(
|
| @@ -4438,7 +4444,7 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
|
| }
|
| }
|
| }
|
| - ResolutionDartType mapType;
|
| + ResolutionInterfaceType mapType;
|
| if (valueTypeArgument != null) {
|
| mapType = commonElements.mapType(keyTypeArgument, valueTypeArgument);
|
| } else {
|
| @@ -4493,7 +4499,7 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
|
| return visit(node.expression);
|
| }
|
|
|
| - ResolutionDartType typeOfConstant(ConstantValue constant) {
|
| + ResolutionInterfaceType typeOfConstant(ConstantValue constant) {
|
| if (constant.isInt) return commonElements.intType;
|
| if (constant.isBool) return commonElements.boolType;
|
| if (constant.isDouble) return commonElements.doubleType;
|
|
|