| // 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; |
| |
| import 'dart:math' as math; |
| |
| class Trace { |
| List<Frame> frames = /*@typeArgs=Frame*/ []; |
| } |
| |
| class Frame { |
| String location = ''; |
| } |
| |
| main() { |
| List<Trace> traces = /*@typeArgs=Trace*/ []; |
| var /*@type=int*/ longest = |
| traces. /*@typeArgs=int*/ /*@target=Iterable.map*/ map( |
| /*@returnType=int*/ (/*@type=Trace*/ trace) { |
| return trace. /*@target=Trace.frames*/ frames |
| . /*@typeArgs=int*/ /*@target=Iterable.map*/ map( |
| /*@returnType=int*/ (/*@type=Frame*/ frame) => frame |
| . /*@target=Frame.location*/ location |
| . /*@target=String.length*/ length) |
| . /*@typeArgs=int*/ /*@target=Iterable.fold*/ fold(0, math.max); |
| }). /*@typeArgs=int*/ /*@target=Iterable.fold*/ fold(0, math.max); |
| } |