anchor.diff:        useLocal(closureData.thisElement);
       } else if (node.isSuperCall) {
         useLocal(closureData.thisElement);
  -    } else if (node.isOperator
  -               && node.argumentsNode is Prefix
  -               && node.selector.source.stringValue == '?') {
  +    } else if (node.isParameterCheck) {
         Element parameter = elements[node.receiver];
         FunctionElement enclosing = parameter.enclosingElement;
         FunctionExpression function = enclosing.parseNode(compiler);
  
positive.code:       if (insideClosure) {
          declareLocal(element);
        }
        
        if (currentFunctionElement.isFactoryConstructor()) {
          // Declare the type parameters in the scope. Generative
          // constructors just use 'this'.
  
negative.code:       }
      }
  
      if (outermostFunctionElement.isInstanceMember()
          || outermostFunctionElement.isGenerativeConstructor()) {
        if (hasTypeVariable(type)) useLocal(closureData.thisElement);
      } else if (outermostFunctionElement.isFactoryConstructor()) {
  