anchor.diff:      //   get foo() => () => 42;
       //   bar() => foo(); // The call to 'foo' is a typed selector.
       // }
  -    if (element.enclosingElement.superclass === compiler.closureClass) {
  +    ClassElement other = element.enclosingElement;
  +    if (other.superclass === compiler.closureClass) {
         return super.applies(element, compiler);
       }
  -
  -    ClassElement other = element.enclosingElement;
  -    ClassElement self = receiverType.element;
   
       // If the class of the element is a subclass of this selector's
       // class, it is a candidate.
  +    ClassElement self = receiverType.element;
       if (other.isSubclassOf(self)) {
         return super.applies(element, compiler);
       }
  
positive.code:          remainingNamedParameters = remainingNamedParameters.tail) {
        Element parameter = remainingNamedParameters.head;
        int foundIndex = -1;
        for (int i = 0; i < this.namedArguments.length; i++) {
          SourceString name = this.namedArguments[i];
          if (name == parameter.name) {
            foundIndex = i;
            break;
          }
        }
        if (foundIndex != -1) {
          list.add(namedArguments[foundIndex]);
        } else {
          list.add(compileConstant(parameter)); 
        }
  
negative.code:     }
  
      // Visit named arguments and add them into a temporary list.
      List compiledNamedArguments = [];
      for (; !arguments.isEmpty(); arguments = arguments.tail) {
        NamedArgument namedArgument = arguments.head;
        compiledNamedArguments.add(compileArgument(namedArgument.expression));
      }
  
      Link<Element> remainingNamedParameters = parameters.optionalParameters;
  