| // 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; |
| |
| void test(List<int> o) { |
| int y = o. /*@typeArgs=int*/ /*@target=Iterable.fold*/ fold( |
| 0, |
| /*@returnType=int*/ (/*@type=int*/ x, |
| /*@type=int*/ y) => |
| x /*@target=num.+*/ + y); |
| var /*@type=int*/ z = |
| o. /*@typeArgs=int*/ /*@target=Iterable.fold*/ fold( |
| 0, |
| /*@returnType=int*/ (/*@type=int*/ x, |
| /*@type=int*/ y) => /*info:DYNAMIC_INVOKE*/ x /*@target=num.+*/+ y); |
| y = /*info:DYNAMIC_CAST*/ z; |
| } |
| |
| void functionExpressionInvocation(List<int> o) { |
| int y = (o. /*@target=Iterable.fold*/ fold) /*@typeArgs=int*/ ( |
| 0, |
| /*@returnType=int*/ (/*@type=int*/ x, |
| /*@type=int*/ y) => |
| x /*@target=num.+*/ + y); |
| var /*@type=int*/ z = |
| (o. /*@target=Iterable.fold*/ fold) /*@typeArgs=int*/ ( |
| 0, |
| /*@returnType=int*/ (/*@type=int*/ x, |
| /*@type=int*/ y) => /*info:DYNAMIC_INVOKE*/ x /*@target=num.+*/+ y); |
| y = /*info:DYNAMIC_CAST*/ z; |
| } |
| |
| main() {} |