anchor.diff:        kind = "constructor";
       }
   
  -    if (emittedCode != null) {
  +    if (element.hasFunctionSignature) {
         FunctionSignature signature = element.functionSignature;
  -      returnType = signature.type.returnType.toString();
         signature.forEachParameter((parameter) {
           parameters.add({
             'name': parameter.name,
  -          'type': compiler.typesTask
  -            .getGuaranteedTypeOfElement(parameter).toString(),
  -          'declaredType': parameter.node.type.toString()
  +          'type': '${compiler.typesTask.getGuaranteedTypeOfElement(parameter)}',
  +          'declaredType': '${parameter.node.type}'
           });
         });
  -      inferredReturnType = compiler.typesTask
  -        .getGuaranteedReturnTypeOfElement(element).toString();
  -      sideEffects = compiler.world.getSideEffectsOfElement(element).toString();
  -      code = emittedCode.toString();
  -    }
  +    }
  +
  +    if (element.isInstanceMember && !element.isAbstract &&
  +        compiler.world.allFunctions.contains(element)) {
  +      returnType = '${element.type.returnType}';
  +    }
  +    inferredReturnType =
  +        '${compiler.typesTask.getGuaranteedReturnTypeOfElement(element)}';
  +    sideEffects = compiler.world.getSideEffectsOfElement(element).toString();
   
       if (element is MemberElement) {
         MemberElement member = element as MemberElement;
  
positive.code: 
      var enclosingElement = element.enclosingElement;
      if (enclosingElement.isField ||
                 enclosingElement.isFunction ||
                 element.isClosure ||
                 enclosingElement.isConstructor) {
        kind = "closure";
        name = "<unnamed>";
      } else if (modifiers['static']) {
  
negative.code: 
  
    void dumpInfoJson(StringSink buffer) {
      JsonEncoder encoder = const JsonEncoder.withIndent('  ');
      DateTime startToJsonTime = new DateTime.now();
  
      Map<String, List<Map<String, String>>> holding =
  