|  | // 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; | 
|  |  | 
|  | import 'dart:async'; | 
|  |  | 
|  | main() async { | 
|  | var /*@ type=Future<B*>* */ b = new Future<B>.value(new B()); | 
|  | var /*@ type=Future<C*>* */ c = new Future<C>.value(new C()); | 
|  | var /*@ type=List<Future<A*>*>* */ lll = /*@ typeArgs=Future<A*>* */ [b, c]; | 
|  | var /*@ type=List<A*>* */ result = await Future. /*@ typeArgs=A* */ wait(lll); | 
|  | var /*@ type=List<A*>* */ result2 = await Future. /*@ typeArgs=A* */ wait( | 
|  | /*@ typeArgs=Future<A*>* */ [b, c]); | 
|  | List<A> list = result; | 
|  | list = result2; | 
|  | } | 
|  |  | 
|  | class A {} | 
|  |  | 
|  | class B extends A {} | 
|  |  | 
|  | class C extends A {} |