| Index: pkg/front_end/lib/src/fasta/kernel/body_builder.dart
|
| diff --git a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
|
| index a119559414b72bb7597707a6f2afb1ffeaf93cde..938394649fe6a10c5bdcc09902a3d3c96e75072d 100644
|
| --- a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
|
| +++ b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
|
| @@ -508,7 +508,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
|
| formal.charOffset),
|
| formal.charOffset);
|
| } else {
|
| - initializer = buildFieldInitializer(formal.name,
|
| + initializer = buildFieldInitializer(true, formal.name,
|
| formal.charOffset, new VariableGet(formal.declaration));
|
| }
|
| member.addInitializer(initializer);
|
| @@ -561,8 +561,8 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
|
| } else if (node is FastaAccessor) {
|
| initializer = node.buildFieldInitializer(initializedFields);
|
| } else if (node is ConstructorInvocation) {
|
| - initializer =
|
| - buildSuperInitializer(node.target, node.arguments, token.charOffset);
|
| + initializer = buildSuperInitializer(
|
| + false, node.target, node.arguments, token.charOffset);
|
| } else {
|
| Expression value = toValue(node);
|
| if (node is! Throw) {
|
| @@ -667,8 +667,8 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
|
| deprecated_buildCompileTimeError(message, builder.charOffset),
|
| builder.charOffset);
|
| } else {
|
| - initializer =
|
| - buildSuperInitializer(superTarget, arguments, builder.charOffset);
|
| + initializer = buildSuperInitializer(
|
| + true, superTarget, arguments, builder.charOffset);
|
| }
|
| constructor.initializers.add(initializer);
|
| }
|
| @@ -3153,7 +3153,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
|
|
|
| @override
|
| Initializer buildFieldInitializer(
|
| - String name, int offset, Expression expression) {
|
| + bool isSynthetic, String name, int offset, Expression expression) {
|
| Builder builder = classBuilder.scope.local[name];
|
| if (builder is KernelFieldBuilder && builder.isInstanceMember) {
|
| initializedFields ??= <String, int>{};
|
| @@ -3182,7 +3182,8 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
|
| offset);
|
| } else {
|
| return new FieldInitializer(builder.field, expression)
|
| - ..fileOffset = offset;
|
| + ..fileOffset = offset
|
| + ..isSynthetic = isSynthetic;
|
| }
|
| } else {
|
| return buildInvalidInitializer(
|
| @@ -3194,7 +3195,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
|
|
|
| @override
|
| Initializer buildSuperInitializer(
|
| - Constructor constructor, Arguments arguments,
|
| + bool isSynthetic, Constructor constructor, Arguments arguments,
|
| [int charOffset = -1]) {
|
| if (member.isConst && !constructor.isConst) {
|
| return buildInvalidInitializer(
|
| @@ -3204,7 +3205,8 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
|
| }
|
| needsImplicitSuperInitializer = false;
|
| return new SuperInitializer(constructor, arguments)
|
| - ..fileOffset = charOffset;
|
| + ..fileOffset = charOffset
|
| + ..isSynthetic = isSynthetic;
|
| }
|
|
|
| @override
|
| @@ -3518,7 +3520,7 @@ class DelayedAssignment extends ContextAccessor {
|
| return accessor.buildFieldInitializer(initializedFields);
|
| }
|
| return helper.buildFieldInitializer(
|
| - accessor.plainNameForRead, offsetForToken(token), value);
|
| + false, accessor.plainNameForRead, offsetForToken(token), value);
|
| }
|
| }
|
|
|
|
|