anchor.diff:  }
   
   class A {
  -  Foo f;
  +  Foo f = <T>(T x) {};
     void test() {
       f<String>("hello");
     }
   }
   ''');
  -  }
  -
  -  test_genericTypeAlias_invalidGenericFunctionType() async {
  -    // There is a parse error, but no crashes.
  -    await assertErrorsInCode('''
  -typedef F = int;
  -main(p) {
  -  p is F;
  -}
  -''', [
  -      error(ParserErrorCode.INVALID_GENERIC_FUNCTION_TYPE, 10, 1),
  -    ]);
     }
   
     test_genericTypeAlias_noTypeParameters() async {
  
positive.code:     // In the code below, the type of (() => f()) has a return type which is
      // a class, and that class is inferred from the return type of the typedef
      // F.
      await assertErrorsInCode('''
  class C {}
  typedef C F();
  F f;
  main() {
    F f2 = (() => f());
  }
  ''', [
        error(HintCode.UNUSED_LOCAL_VARIABLE, 44, 2),
      ]);
    }
  
    test_assignability_function_expr_rettype_from_typedef_typedef() async {
      // In the code below, the type of (() => f()) has a return type which is
      // a typedef, and that typedef is inferred from the return type of the
      // typedef F.
      await assertErrorsInCode('''
  typedef G F();
  typedef G();
  F f;
  main() {
    F f2 = (() => f());
  }
  ''', [
        error(HintCode.UNUSED_LOCAL_VARIABLE, 46, 2),
      ]);
    }
  
    test_assignmentToFinal_prefixNegate() async {
  
negative.code: print(_) {}
  main(A p) {
    (p is C) && (print(() => p) && (p is B)) ? p.mc() : p = null;
  }
  ''');
    }
  