| // 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. |
| // @dart=2.9 |
| /*@testedFeatures=inference*/ |
| library test; |
| |
| T run<T>(T f()) { |
| print("running"); |
| var /*@ type=run::T* */ t = f(); |
| print("done running"); |
| return t; |
| } |
| |
| void printRunning() { |
| print("running"); |
| } |
| |
| var x = run<dynamic>(printRunning); |
| |
| main() { |
| void printRunning() { |
| print("running"); |
| } |
| |
| var /*@ type=dynamic */ x = run<dynamic>(printRunning); |
| var /*@ type=void */ y = /*info:USE_OF_VOID_RESULT*/ /*@ typeArgs=void */ run( |
| printRunning); |
| x = 123; |
| x = 'hi'; |
| y = /*error:INVALID_ASSIGNMENT*/ 123; |
| y = /*error:INVALID_ASSIGNMENT*/ 'hi'; |
| } |