| // 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. |
| // @dart=2.9 |
| /*@testedFeatures=inference*/ |
| library test; |
| |
| void main() { |
| var /*@ type=List<List<String*>*>* */ l = /*@ typeArgs=List<String*>* */ [ |
| /*@ typeArgs=String* */ ["hi", "world"] |
| ]; |
| var /*@ type=Iterable<List<String*>*>* */ i1 = |
| l. /*@target=Iterable.map*/ /*@ typeArgs=List<String*>* */ map( |
| /*@ returnType=List<String*>* */ (/*@ type=List<String*>* */ ll) => |
| ll /*@target=List.==*/ ?? /*@ typeArgs=String* */ []); |
| var /*@ type=Iterable<int*>* */ i2 = |
| i1. /*@target=Iterable.map*/ /*@ typeArgs=int* */ map( |
| /*@ returnType=int* */ (List<String> l) => |
| l. /*@target=List.length*/ length); |
| print(i2); |
| } |