| // 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; |
| |
| class A { |
| int operator +(other) => 1; |
| double operator -(other) => 2.0; |
| } |
| |
| class B { |
| A a = throw ''; |
| } |
| |
| var v_prefix_pp = |
| (/*@target=A.+*/ ++new /*@type=B*/ B(). /*@target=B.a*/ /*@target=B.a*/ a); |
| var v_prefix_mm = |
| (/*@target=A.-*/ --new /*@type=B*/ B(). /*@target=B.a*/ /*@target=B.a*/ a); |
| var v_postfix_pp = (new /*@type=B*/ B() |
| . /*@type=A*/ /*@target=B.a*/ /*@target=B.a*/ |
| /*@type=int*/ a /*@target=A.+*/ ++); |
| var v_postfix_mm = (new /*@type=B*/ B() |
| . /*@type=A*/ /*@target=B.a*/ /*@target=B.a*/ |
| /*@type=double*/ a /*@target=A.-*/ --); |
| |
| main() {} |