| Index: pkg/compiler/lib/src/resolution/resolution_result.dart
 | 
| diff --git a/pkg/compiler/lib/src/resolution/resolution_result.dart b/pkg/compiler/lib/src/resolution/resolution_result.dart
 | 
| index ba2b74cdd58c5eb91f5034e791bcf2787ef7e485..4b12234016736a1f1fc0305a374c59ecd87b3fa4 100644
 | 
| --- a/pkg/compiler/lib/src/resolution/resolution_result.dart
 | 
| +++ b/pkg/compiler/lib/src/resolution/resolution_result.dart
 | 
| @@ -10,6 +10,7 @@ enum ResultKind {
 | 
|    TYPE,
 | 
|    ASSERT,
 | 
|    CONSTANT,
 | 
| +  PREFIX,
 | 
|  }
 | 
|  
 | 
|  /// The result of resolving a node.
 | 
| @@ -30,13 +31,32 @@ abstract class ResolutionResult {
 | 
|    bool get isConstant => false;
 | 
|  }
 | 
|  
 | 
| +/// The prefix of top level or member access, like `prefix.member`,
 | 
| +/// `prefix.Class.member` or `Class.member`.
 | 
| +class PrefixResult extends ResolutionResult {
 | 
| +  final PrefixElement prefix;
 | 
| +  final ClassElement cls;
 | 
| +
 | 
| +  PrefixResult(this.prefix, this.cls);
 | 
| +
 | 
| +  Element get element => cls != null ? cls : prefix;
 | 
| +
 | 
| +  bool get isDeferred => prefix != null && prefix.isDeferred;
 | 
| +
 | 
| +  ResultKind get kind => ResultKind.PREFIX;
 | 
| +
 | 
| +  String toString() => 'PrefixResult($prefix,$cls)';
 | 
| +}
 | 
| +
 | 
|  /// The result for the resolution of a node that points to an [Element].
 | 
|  class ElementResult extends ResolutionResult {
 | 
|    final Element element;
 | 
|  
 | 
|    ResultKind get kind => ResultKind.ELEMENT;
 | 
|  
 | 
| -  ElementResult(this.element);
 | 
| +  ElementResult(this.element) {
 | 
| +    assert(element != null);
 | 
| +  }
 | 
|  
 | 
|    String toString() => 'ElementResult($element)';
 | 
|  }
 | 
| 
 |