| 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 03af0da3b17c92dfe8b01df671e12dcebd4eaf22..89df08f4e9e32f33e114206b1cd680f4f6fe230a 100644
|
| --- a/pkg/compiler/lib/src/resolution/members.dart
|
| +++ b/pkg/compiler/lib/src/resolution/members.dart
|
| @@ -414,7 +414,7 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
|
| TypeResult visitTypeAnnotation(TypeAnnotation node) {
|
| DartType type = resolveTypeAnnotation(node);
|
| if (inCheckContext) {
|
| - registry.registerCheckedModeCheck(type);
|
| + registry.registerIsCheck(type);
|
| }
|
| return new TypeResult(type);
|
| }
|
| @@ -500,7 +500,7 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
|
| });
|
| if (inCheckContext) {
|
| functionParameters.forEachParameter((ParameterElement element) {
|
| - registry.registerCheckedModeCheck(element.type);
|
| + registry.registerIsCheck(element.type);
|
| });
|
| }
|
| }
|
| @@ -1190,7 +1190,7 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
|
|
|
| Node typeNode = node.arguments.head;
|
| DartType type = resolveTypeAnnotation(typeNode);
|
| - registry.registerAsCast(type);
|
| + registry.registerAsCheck(type);
|
| registry.registerSendStructure(node, new AsStructure(type));
|
| return const NoneResult();
|
| }
|
| @@ -1952,6 +1952,7 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
|
| } else {
|
| semantics = new StaticAccess.typeParameterTypeLiteral(element);
|
| }
|
| + registry.registerTypeVariableExpression(element);
|
|
|
| registry.useElement(node, element);
|
| registry.registerTypeLiteral(node, element.type);
|
| @@ -2004,10 +2005,14 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
|
| MessageKind.ASSIGNING_TYPE, const {});
|
| }
|
|
|
| + if (node.isComplex) {
|
| + // We read the type variable before trying write to it.
|
| + registry.registerTypeVariableExpression(element);
|
| + }
|
| +
|
| // TODO(23998): Remove this when all information goes through
|
| // the [SendStructure].
|
| registry.useElement(node, error);
|
| - // TODO(johnniwinther): Register only on read?
|
| registry.registerTypeLiteral(node, element.type);
|
| registry.registerThrowNoSuchMethod();
|
| semantics = new StaticAccess.typeParameterTypeLiteral(element);
|
| @@ -4003,7 +4008,7 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
|
| this, node, malformedIsError: malformedIsError,
|
| deferredIsMalformed: deferredIsMalformed);
|
| if (inCheckContext) {
|
| - registry.registerCheckedModeCheck(type);
|
| + registry.registerIsCheck(type);
|
| registry.registerRequiredType(type, enclosingElement);
|
| }
|
| return type;
|
| @@ -4043,11 +4048,8 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
|
| } else {
|
| listType = coreTypes.listType();
|
| }
|
| - registry.registerLiteralList(
|
| - node,
|
| - listType,
|
| - isConstant: node.isConst,
|
| - isEmpty: node.elements.isEmpty);
|
| + registry.setType(node, listType);
|
| + registry.registerInstantiatedType(listType);
|
| registry.registerRequiredType(listType, enclosingElement);
|
| if (node.isConst) {
|
| List<ConstantExpression> constantExpressions = <ConstantExpression>[];
|
| @@ -4367,11 +4369,7 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
|
| MessageKind.TYPE_VARIABLE_IN_CONSTANT);
|
| isValidAsConstant = false;
|
| }
|
| - registry.registerMapLiteral(
|
| - node,
|
| - mapType,
|
| - isConstant: node.isConst,
|
| - isEmpty: node.entries.isEmpty);
|
| + registry.registerMapLiteral(node, mapType, node.isConst);
|
| registry.registerRequiredType(mapType, enclosingElement);
|
| if (node.isConst) {
|
|
|
|
|