anchor.diff:      if (node.isThis()) {
         return currentClass.computeType(compiler);
       } else {
  -      fail(node, 'internal error: unexpected identifier');
  +      // This is an identifier of a formal parameter.
  +      return types.dynamicType;
       }
     }
   
  
positive.code:     compiler.reportWarning(node, new TypeWarning(kind, arguments));
    }
  
    Type analyzeNonVoid(Node node) {
      Type type = analyze(node);
      if (type == types.voidType) {
  
negative.code:       fail(selector, 'unexpected operator ${name}');
  
      } else if (node.isPropertyAccess) {
        if (node.receiver !== null) {
          // TODO(karlklose): we cannot handle fields.
          return unhandledExpression();
        }
        Element element = elements[node];
        if (element === null) return types.dynamicType;
        return computeType(element);
  
      } else if (node.isFunctionObjectInvocation) {
  