anchor.diff:      throw "Cannot add element to TypeDeclarationScope";
     }
   
  -  Element localLookup(SourceString name) {
  +  Element lookupTypeVariable(SourceString name) {
       Link<DartType> typeVariableLink = element.typeVariables;
       while (!typeVariableLink.isEmpty()) {
         TypeVariableType typeVariable = typeVariableLink.head;
  
positive.code:   }
  
    visitIn(Node node, Scope nestedScope) {
      scope = nestedScope;
      Element element = visit(node);
      scope = scope.parent;
      return element;
    }
  
  
negative.code:     return null;
    }
  
    Element localLookup(SourceString name) => lookupTypeVariable(name);
  
    String toString() =>
        'TypeDeclarationScope($element)';
  }
  
  abstract class MutableScope extends NestedScope {
    final Map<SourceString, Element> elements;
  
    MutableScope(Scope parent)
        : super(parent),
          this.elements = new Map<SourceString, Element>() {
      assert(parent != null);
    }
  
    Element add(Element newElement) {
      if (elements.containsKey(newElement.name)) {
  