blob: 859c3db228ced934eb9c5c484aa911d656ec0059 [file] [log] [blame]
// Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
/*@testedFeatures=inference*/
T map<T>(T Function() f1, T Function() f2) {}
id<T>(T t) => t;
Null foo() => null;
main() {
/*@typeArgs=Null*/map(/*@returnType=Null*/() {}, /*@returnType=<BottomType>*/() => throw "hello");
/*@typeArgs=Null*/map(/*@returnType=<BottomType>*/() => throw "hello", /*@returnType=Null*/() {});
Null Function() f = /*@returnType=Null*/() {};
/*@typeArgs=Null*/map(foo, /*@returnType=<BottomType>*/() => throw "hello");
/*@typeArgs=Null*/map(/*@returnType=<BottomType>*/() => throw "hello", foo);
/*@typeArgs=Null*/map(/*@returnType=Null*/() {
return null;
}, /*@returnType=<BottomType>*/() => throw "hello");
/*@typeArgs=Null*/map(/*@returnType=<BottomType>*/() => throw "hello", /*@returnType=Null*/() {
return null;
});
/*@typeArgs=() -> Null*/id(/*@returnType=Null*/() {});
}