| Index: pkg/compiler/lib/src/resolution/constructors.dart
|
| diff --git a/pkg/compiler/lib/src/resolution/constructors.dart b/pkg/compiler/lib/src/resolution/constructors.dart
|
| index 16c2e27fdd51c5c3b91e6abce7bbfea52db9435d..975832fb47902653cd942a897220087e03979ad1 100644
|
| --- a/pkg/compiler/lib/src/resolution/constructors.dart
|
| +++ b/pkg/compiler/lib/src/resolution/constructors.dart
|
| @@ -28,6 +28,8 @@ import '../universe/call_structure.dart' show
|
| CallStructure;
|
| import '../universe/selector.dart' show
|
| Selector;
|
| +import '../universe/use.dart' show
|
| + StaticUse;
|
|
|
| import 'members.dart' show
|
| lookupInScope,
|
| @@ -125,7 +127,9 @@ class InitializerResolver {
|
| }
|
| if (target != null) {
|
| registry.useElement(init, target);
|
| - registry.registerStaticUse(target);
|
| + if (!target.isMalformed) {
|
| + registry.registerStaticUse(new StaticUse.fieldInit(target));
|
| + }
|
| checkForDuplicateInitializers(target, init);
|
| }
|
| // Resolve initializing value.
|
| @@ -183,7 +187,9 @@ class InitializerResolver {
|
| constructorSelector);
|
| if (calledConstructor != null) {
|
| registry.useElement(call, calledConstructor);
|
| - registry.registerStaticUse(calledConstructor);
|
| + registry.registerStaticUse(
|
| + new StaticUse.superConstructorInvoke(
|
| + calledConstructor, argumentsResult.callStructure));
|
| }
|
| if (isConst) {
|
| if (isValidAsConstant &&
|
| @@ -232,7 +238,9 @@ class InitializerResolver {
|
| className,
|
| constructorSelector);
|
| if (calledConstructor != null) {
|
| - registry.registerImplicitSuperCall(calledConstructor);
|
| + registry.registerStaticUse(
|
| + new StaticUse.constructorInvoke(
|
| + calledConstructor, constructorSelector.callStructure));
|
| }
|
|
|
| if (isConst && isValidAsConstant) {
|
|
|