| OLD | NEW | 
|---|
| (Empty) |  | 
|  | 1 // Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file | 
|  | 2 // for details. All rights reserved. Use of this source code is governed by a | 
|  | 3 // BSD-style license that can be found in the LICENSE file. | 
|  | 4 | 
|  | 5 /*@testedFeatures=inference*/ | 
|  | 6 library test; | 
|  | 7 | 
|  | 8 class A {} | 
|  | 9 | 
|  | 10 class B extends A { | 
|  | 11   A operator +(C v) => null; | 
|  | 12   B operator -(int i) => null; | 
|  | 13   B operator *(B v) => null; | 
|  | 14   C operator &(A v) => null; | 
|  | 15 | 
|  | 16   static B staticVariable; | 
|  | 17 } | 
|  | 18 | 
|  | 19 class C extends B {} | 
|  | 20 | 
|  | 21 T f<T>() => null; | 
|  | 22 | 
|  | 23 B topLevelVariable; | 
|  | 24 | 
|  | 25 void test_topLevelVariable() { | 
|  | 26   topLevelVariable = /*@typeArgs=B*/ f(); | 
|  | 27   topLevelVariable ??= /*@typeArgs=B*/ f(); | 
|  | 28   topLevelVariable += /*@typeArgs=dynamic*/ f(); | 
|  | 29   topLevelVariable *= /*@typeArgs=dynamic*/ f(); | 
|  | 30   topLevelVariable &= /*@typeArgs=dynamic*/ f(); | 
|  | 31   --topLevelVariable; | 
|  | 32   topLevelVariable--; | 
|  | 33   var /*@type=B*/ v1 = topLevelVariable = /*@typeArgs=B*/ f(); | 
|  | 34   var /*@type=B*/ v2 = topLevelVariable ??= /*@typeArgs=B*/ f(); | 
|  | 35   var /*@type=A*/ v3 = topLevelVariable += /*@typeArgs=dynamic*/ f(); | 
|  | 36   var /*@type=B*/ v4 = topLevelVariable *= /*@typeArgs=dynamic*/ f(); | 
|  | 37   var /*@type=C*/ v5 = topLevelVariable &= /*@typeArgs=dynamic*/ f(); | 
|  | 38   var /*@type=B*/ v6 = --topLevelVariable; | 
|  | 39   var /*@type=B*/ v7 = topLevelVariable--; | 
|  | 40 } | 
|  | 41 | 
|  | 42 void test_staticVariable() { | 
|  | 43   B.staticVariable = /*@typeArgs=B*/ f(); | 
|  | 44   B.staticVariable ??= /*@typeArgs=B*/ f(); | 
|  | 45   B.staticVariable += /*@typeArgs=dynamic*/ f(); | 
|  | 46   B.staticVariable *= /*@typeArgs=dynamic*/ f(); | 
|  | 47   B.staticVariable &= /*@typeArgs=dynamic*/ f(); | 
|  | 48   --B.staticVariable; | 
|  | 49   B.staticVariable--; | 
|  | 50   var /*@type=B*/ v1 = B.staticVariable = /*@typeArgs=B*/ f(); | 
|  | 51   var /*@type=B*/ v2 = B.staticVariable ??= /*@typeArgs=B*/ f(); | 
|  | 52   var /*@type=A*/ v3 = B.staticVariable += /*@typeArgs=dynamic*/ f(); | 
|  | 53   var /*@type=B*/ v4 = B.staticVariable *= /*@typeArgs=dynamic*/ f(); | 
|  | 54   var /*@type=C*/ v5 = B.staticVariable &= /*@typeArgs=dynamic*/ f(); | 
|  | 55   var /*@type=B*/ v6 = --B.staticVariable; | 
|  | 56   var /*@type=B*/ v7 = B.staticVariable--; | 
|  | 57 } | 
|  | 58 | 
|  | 59 main() {} | 
| OLD | NEW | 
|---|