| // Copyright (c) 2018, 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. |
| |
| import 'dart:async'; |
| |
| class A {} |
| |
| class B extends A {} |
| |
| void foo1_a1(x) {} |
| void foo1_a2(x) {} |
| void foo1_a3(x) {} |
| void foo1_a4(x) {} |
| |
| void foo1(Future<A> a1, A a2, FutureOr<A> a3, FutureOr<A> a4) { |
| foo1_a1(a1); |
| foo1_a2(a2); |
| foo1_a3(a3); |
| foo1_a4(a4); |
| } |
| |
| void foo2_a1(x) {} |
| void foo2_a2(x) {} |
| void foo2_a3(x) {} |
| void foo2_a4(x) {} |
| |
| void foo2(Future<A> a1, A a2, FutureOr<A> a3, FutureOr<A> a4) { |
| foo2_a1(a1); |
| foo2_a2(a2); |
| foo2_a3(a3); |
| foo2_a4(a4); |
| } |
| |
| Function unknown; |
| getDynamic() => unknown.call(); |
| |
| main(List<String> args) { |
| foo1(new Future<B>.value(new B()), new B(), new Future<B>.value(new B()), |
| new B()); |
| foo2(getDynamic(), getDynamic(), getDynamic(), getDynamic()); |
| } |