blob: 65e1bda1279a67c517c4b1909fc6a984ab1e145e [file] [log] [blame]
// Copyright (c) 2017, 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*/
library test;
var /*@topType=dynamic*/ h = null;
void foo(int f(Object _)) {}
test() {
var /*@type=(Object) -> Null*/ f = /*@returnType=Null*/ (Object x) => null;
String y = /*info:DYNAMIC_CAST*/ f(42);
f = /*@returnType=Null*/ (/*@type=Object*/ x) => 'hello';
var /*@type=dynamic*/ g = null;
g = 'hello';
(/*info:DYNAMIC_INVOKE*/ g.foo());
h = 'hello';
(/*info:DYNAMIC_INVOKE*/ h.foo());
foo(/*@returnType=Null*/ (/*@type=Object*/ x) => null);
foo(/*@returnType=<BottomType>*/ (/*@type=Object*/ x) =>
throw "not implemented");
}
main() {}