anchor.diff:      return newElement;
     }
   
  -  String toString() => '$element${elements.getKeys()}';
  +  Element localLookup(SourceString name) => elements[name];
   }
   
  -class BlockScope extends MethodScope {
  -  BlockScope(Scope parent) : super(parent, parent.element);
  -
  -  String toString() => 'block${elements.getKeys()}';
  +class MethodScope extends MutableScope {
  +  final Element element;
  +
  +  MethodScope(Scope parent, this.element)
  +      : super(parent);
  +
  +  String toString() => 'MethodScope($element${elements.getKeys()})';
  +}
  +
  +class BlockScope extends MutableScope {
  +  BlockScope(Scope parent) : super(parent);
  +
  +  String toString() => 'BlockScope(${elements.getKeys()})';
   }
   
   /**
  
positive.code:  * scope is only used for class/interface declarations during resolution of the
   * class hierarchy. In all other cases [ClassScope] is used.
   */
  class TypeDeclarationScope extends Scope {
    TypeDeclarationElement get element => super.element;
  
    TypeDeclarationScope(parent, TypeDeclarationElement element)
        : super(parent, element) {
      assert(parent != null);
    }
  
  
negative.code:   }
  
    visitIn(Node node, Scope nestedScope) {
      Scope oldScope = scope;
      scope = nestedScope;
      Element element = visit(node);
      scope = oldScope;
      return element;
    }
  
  