anchor.diff:        typeFormals: [T],
         returnType: typeParameterTypeNone(T),
       );
  -    expect(_inferCall(f, []), [numNone]);
  +    _assertTypes(_inferCall(f, []), [numNone]);
     }
   
     void _assertType(DartType type, String expected) {
       var typeStr = type.getDisplayString(withNullability: false);
       expect(typeStr, expected);
  +  }
  +
  +  void _assertTypes(List<DartType> actual, List<DartType> expected) {
  +    var actualStr = actual.map((e) {
  +      return e.getDisplayString(withNullability: true);
  +    }).toList();
  +
  +    var expectedStr = expected.map((e) {
  +      return e.getDisplayString(withNullability: true);
  +    }).toList();
  +
  +    expect(actualStr, expectedStr);
     }
   
     List<DartType> _inferCall(FunctionTypeImpl ft, List<DartType> arguments,
  
positive.code:       ],
        returnType: dynamicNone,
      );
      expect(_inferCall(f, [intNone]), [intNone]);
    }
  
    void test_returnFunctionWithGenericParameter() {
  
negative.code:         returnType: voidNone,
        ),
      );
      _assertTypes(
        _inferCall(f, [
          functionTypeNone(
            parameters: [
  