| Index: pkg/compiler/lib/src/inferrer/inferrer_visitor.dart
 | 
| diff --git a/pkg/compiler/lib/src/inferrer/inferrer_visitor.dart b/pkg/compiler/lib/src/inferrer/inferrer_visitor.dart
 | 
| index 5d4623a7b337c2868e58bb6f4819d2d059c74f58..78ef6bb3c3a206fd60075ff8c4c0bda5471e227a 100644
 | 
| --- a/pkg/compiler/lib/src/inferrer/inferrer_visitor.dart
 | 
| +++ b/pkg/compiler/lib/src/inferrer/inferrer_visitor.dart
 | 
| @@ -705,6 +705,7 @@ abstract class InferrerVisitor<T, E extends MinimalInferrerEngine<T>>
 | 
|      implements SemanticSendVisitor<T, dynamic> {
 | 
|    final Compiler compiler;
 | 
|    final AstElement analyzedElement;
 | 
| +  final ResolvedAst resolvedAst;
 | 
|    final TypeSystem<T> types;
 | 
|    final E inferrer;
 | 
|    final Map<JumpTarget, List<LocalsHandler<T>>> breaksFor =
 | 
| @@ -713,7 +714,8 @@ abstract class InferrerVisitor<T, E extends MinimalInferrerEngine<T>>
 | 
|        new Map<JumpTarget, List<LocalsHandler<T>>>();
 | 
|    LocalsHandler<T> locals;
 | 
|    final List<T> cascadeReceiverStack = new List<T>();
 | 
| -  final TreeElements elements;
 | 
| +
 | 
| +  TreeElements get elements => resolvedAst.elements;
 | 
|  
 | 
|    bool accumulateIsChecks = false;
 | 
|    bool conditionIsSimple = false;
 | 
| @@ -733,12 +735,11 @@ abstract class InferrerVisitor<T, E extends MinimalInferrerEngine<T>>
 | 
|      }
 | 
|    }
 | 
|  
 | 
| -  InferrerVisitor(
 | 
| -      AstElement analyzedElement, this.inferrer, this.types, this.compiler,
 | 
| +  InferrerVisitor(AstElement analyzedElement, this.resolvedAst, this.inferrer,
 | 
| +      this.types, this.compiler,
 | 
|        [LocalsHandler<T> handler])
 | 
|        : this.analyzedElement = analyzedElement,
 | 
| -        this.locals = handler,
 | 
| -        this.elements = analyzedElement.resolvedAst.elements {
 | 
| +        this.locals = handler {
 | 
|      if (handler != null) return;
 | 
|      Node node = analyzedElement.node;
 | 
|      FieldInitializationScope<T> fieldScope =
 | 
| 
 |