| Index: pkg/kernel/lib/transformations/closure/rewriter.dart
|
| diff --git a/pkg/kernel/lib/transformations/closure/rewriter.dart b/pkg/kernel/lib/transformations/closure/rewriter.dart
|
| index 255398cb061bccc3658478b2c2066477a5a732ae..82c4e6cbf019806fd79d3d01185076d9704792bc 100644
|
| --- a/pkg/kernel/lib/transformations/closure/rewriter.dart
|
| +++ b/pkg/kernel/lib/transformations/closure/rewriter.dart
|
| @@ -100,9 +100,10 @@ abstract class InitializerRewriter extends AstRewriter {
|
| @override
|
| void insertContextDeclaration(Expression accessParent) {
|
| _createDeclaration();
|
| + var oldParent = initializingExpression.parent;
|
| Let binding = new Let(contextDeclaration, initializingExpression);
|
| + binding.parent = oldParent;
|
| setInitializerExpression(binding);
|
| - initializingExpression.parent = binding;
|
| }
|
|
|
| @override
|
| @@ -124,23 +125,19 @@ class FieldInitializerRewriter extends InitializerRewriter {
|
| }
|
|
|
| void setInitializerExpression(Expression expression) {
|
| - assert(initializingExpression.parent is FieldInitializer);
|
| - FieldInitializer parent = initializingExpression.parent;
|
| - parent.value = expression;
|
| - expression.parent = parent;
|
| + (expression.parent as FieldInitializer).value = expression;
|
| }
|
| }
|
|
|
| class LocalInitializerRewriter extends InitializerRewriter {
|
| LocalInitializerRewriter(Expression initializingExpression)
|
| : super(initializingExpression) {
|
| - assert(initializingExpression.parent is LocalInitializer);
|
| + // The initializer is up two levels because the variable declaration node is
|
| + // in between.
|
| + assert(initializingExpression.parent.parent is LocalInitializer);
|
| }
|
|
|
| void setInitializerExpression(Expression expression) {
|
| - assert(initializingExpression.parent is LocalInitializer);
|
| - LocalInitializer parent = initializingExpression.parent;
|
| - parent.variable.initializer = expression;
|
| - expression.parent = parent;
|
| + (expression.parent as VariableDeclaration).initializer = expression;
|
| }
|
| }
|
|
|