| 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 a3c33ba4c1d9319bcc44ca233d53930cee21afec..838224db374c6dd84f8139f42e49caa4da6f4e2c 100644
|
| --- a/pkg/compiler/lib/src/resolution/members.dart
|
| +++ b/pkg/compiler/lib/src/resolution/members.dart
|
| @@ -3445,12 +3445,13 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
|
| registry.setSelector(node, setterSelector);
|
| registry.setOperatorSelectorInComplexSendSet(node, operatorSelector);
|
|
|
| - registry.registerDynamicUse(new DynamicUse(operatorSelector, null));
|
| -
|
| SendStructure sendStructure;
|
| if (operator.kind == AssignmentOperatorKind.IF_NULL) {
|
| + registry.registerConstantLiteral(new NullConstantExpression());
|
| + registry.registerDynamicUse(new DynamicUse(Selectors.equals, null));
|
| sendStructure = new SetIfNullStructure(semantics);
|
| } else {
|
| + registry.registerDynamicUse(new DynamicUse(operatorSelector, null));
|
| sendStructure = new CompoundStructure(semantics, operator);
|
| }
|
| registry.registerSendStructure(node, sendStructure);
|
| @@ -3888,11 +3889,10 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
|
| // and only declaration elements may be registered.
|
| // TODO(johniwinther): Avoid registration of `type` in face of redirecting
|
| // factory constructors.
|
| - registry.registerStaticUse(
|
| - node.isConst
|
| - ? new StaticUse.constConstructorInvoke(
|
| + registry.registerStaticUse(node.isConst
|
| + ? new StaticUse.constConstructorInvoke(
|
| constructor.declaration, callStructure, type)
|
| - : new StaticUse.typedConstructorInvoke(
|
| + : new StaticUse.typedConstructorInvoke(
|
| constructor.declaration, callStructure, type));
|
| InterfaceType interfaceType = type;
|
| if (interfaceType.typeArguments.any((DartType type) => !type.isDynamic)) {
|
|
|