| // Copyright (c) 2019, 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. |
| |
| num numTopLevel = /*int*/ 0; |
| int intTopLevel = /*int*/ 0; |
| dynamic dynamicTopLevel = /*int*/ 0; |
| |
| testTopLevel() { |
| /*update: num*/ /*num*/ numTopLevel /*invoke: num*/ /*int*/ ++; |
| /*update: num*/ /*num*/ numTopLevel /*invoke: num*/ /*int*/ --; |
| /*invoke: num*/ /*int*/ ++ /*update: num*/ /*num*/ numTopLevel; |
| /*invoke: num*/ /*int*/ -- /*update: num*/ /*num*/ numTopLevel; |
| |
| /*update: int*/ /*int*/ intTopLevel /*invoke: int*/ /*int*/ ++; |
| /*update: int*/ /*int*/ intTopLevel /*invoke: int*/ /*int*/ --; |
| /*invoke: int*/ /*int*/ ++ /*update: int*/ /*int*/ intTopLevel; |
| /*invoke: int*/ /*int*/ -- /*update: int*/ /*int*/ intTopLevel; |
| |
| /*update: dynamic*/ /*dynamic*/ dynamicTopLevel |
| /*invoke: dynamic*/ /*int*/ ++; |
| /*update: dynamic*/ /*dynamic*/ dynamicTopLevel |
| /*invoke: dynamic*/ /*int*/ --; |
| /*invoke: dynamic*/ /*int*/ ++ |
| /*update: dynamic*/ /*dynamic*/ dynamicTopLevel; |
| /*invoke: dynamic*/ /*int*/ -- |
| /*update: dynamic*/ /*dynamic*/ dynamicTopLevel; |
| } |
| |
| class Class { |
| num numInstance = /*int*/ 0; |
| int intInstance = /*int*/ 0; |
| dynamic dynamicInstance = /*int*/ 0; |
| |
| testInstance() { |
| /*update: num*/ /*num*/ numInstance /*invoke: num*/ /*int*/ ++; |
| /*update: num*/ /*num*/ numInstance /*invoke: num*/ /*int*/ --; |
| /*invoke: num*/ /*int*/ ++ /*update: num*/ /*num*/ numInstance; |
| /*invoke: num*/ /*int*/ -- /*update: num*/ /*num*/ numInstance; |
| |
| /*update: int*/ /*int*/ intInstance /*invoke: int*/ /*int*/ ++; |
| /*update: int*/ /*int*/ intInstance /*invoke: int*/ /*int*/ --; |
| /*invoke: int*/ /*int*/ ++ /*update: int*/ /*int*/ intInstance; |
| /*invoke: int*/ /*int*/ -- /*update: int*/ /*int*/ intInstance; |
| |
| /*update: dynamic*/ /*dynamic*/ dynamicInstance |
| /*invoke: dynamic*/ /*int*/ ++; |
| /*update: dynamic*/ /*dynamic*/ dynamicInstance |
| /*invoke: dynamic*/ /*int*/ --; |
| /*invoke: dynamic*/ /*int*/ ++ |
| /*update: dynamic*/ /*dynamic*/ dynamicInstance; |
| /*invoke: dynamic*/ /*int*/ -- |
| /*update: dynamic*/ /*dynamic*/ dynamicInstance; |
| } |
| } |
| |
| testInstanceOnClass(Class c) { |
| /*Class*/ c. /*update: num*/ /*num*/ numInstance /*invoke: num*/ /*int*/ ++; |
| /*Class*/ c. /*update: num*/ /*num*/ numInstance /*invoke: num*/ /*int*/ --; |
| /*invoke: num*/ /*int*/ ++ /*Class*/ c. /*update: num*/ /*num*/ numInstance; |
| /*invoke: num*/ /*int*/ -- /*Class*/ c. /*update: num*/ /*num*/ numInstance; |
| |
| /*Class*/ c. /*update: int*/ /*int*/ intInstance /*invoke: int*/ /*int*/ ++; |
| /*Class*/ c. /*update: int*/ /*int*/ intInstance /*invoke: int*/ /*int*/ --; |
| /*invoke: int*/ /*int*/ ++ /*Class*/ c. /*update: int*/ /*int*/ intInstance; |
| /*invoke: int*/ /*int*/ -- /*Class*/ c. /*update: int*/ /*int*/ intInstance; |
| |
| /*Class*/ c. /*update: dynamic*/ /*dynamic*/ dynamicInstance |
| /*invoke: dynamic*/ /*int*/ ++; |
| /*Class*/ c. /*update: dynamic*/ /*dynamic*/ dynamicInstance |
| /*invoke: dynamic*/ /*int*/ --; |
| /*invoke: dynamic*/ /*int*/ ++ /*Class*/ c |
| . /*update: dynamic*/ /*dynamic*/ dynamicInstance; |
| /*invoke: dynamic*/ /*int*/ -- /*Class*/ c |
| . /*update: dynamic*/ /*dynamic*/ dynamicInstance; |
| } |
| |
| testInstanceOnDynamic(dynamic c) { |
| /*dynamic*/ c. /*update: dynamic*/ /*dynamic*/ numInstance |
| /*invoke: dynamic*/ /*int*/ ++; |
| /*dynamic*/ c. /*update: dynamic*/ /*dynamic*/ numInstance |
| /*invoke: dynamic*/ /*int*/ --; |
| /*invoke: dynamic*/ /*int*/ ++ /*dynamic*/ c |
| . /*update: dynamic*/ /*dynamic*/ numInstance; |
| /*invoke: dynamic*/ /*int*/ -- /*dynamic*/ c |
| . /*update: dynamic*/ /*dynamic*/ numInstance; |
| |
| /*dynamic*/ c. /*update: dynamic*/ /*dynamic*/ intInstance |
| /*invoke: dynamic*/ /*int*/ ++; |
| /*dynamic*/ c. /*update: dynamic*/ /*dynamic*/ intInstance |
| /*invoke: dynamic*/ /*int*/ --; |
| /*invoke: dynamic*/ /*int*/ ++ /*dynamic*/ c |
| . /*update: dynamic*/ /*dynamic*/ intInstance; |
| /*invoke: dynamic*/ /*int*/ -- /*dynamic*/ c |
| . /*update: dynamic*/ /*dynamic*/ intInstance; |
| |
| /*dynamic*/ c. /*update: dynamic*/ /*dynamic*/ dynamicInstance |
| /*invoke: dynamic*/ /*int*/ ++; |
| /*dynamic*/ c. /*update: dynamic*/ /*dynamic*/ dynamicInstance |
| /*invoke: dynamic*/ /*int*/ --; |
| /*invoke: dynamic*/ /*int*/ ++ /*dynamic*/ c |
| . /*update: dynamic*/ /*dynamic*/ dynamicInstance; |
| /*invoke: dynamic*/ /*int*/ -- /*dynamic*/ c |
| . /*update: dynamic*/ /*dynamic*/ dynamicInstance; |
| } |
| |
| main() { |
| /// ignore: unused_local_variable |
| num numLocal = /*int*/ 0; |
| |
| /// ignore: unused_local_variable |
| int intLocal = /*int*/ 0; |
| |
| /// ignore: unused_local_variable |
| dynamic dynamicLocal = /*int*/ 0; |
| |
| /*update: num*/ /*num*/ numLocal /*invoke: num*/ /*int*/ ++; |
| /*update: num*/ /*num*/ numLocal /*invoke: num*/ /*int*/ --; |
| /*invoke: num*/ /*int*/ ++ /*update: num*/ /*num*/ numLocal; |
| /*invoke: num*/ /*int*/ -- /*update: num*/ /*num*/ numLocal; |
| |
| /*update: int*/ /*int*/ intLocal /*invoke: int*/ /*int*/ ++; |
| /*update: int*/ /*int*/ intLocal /*invoke: int*/ /*int*/ --; |
| /*invoke: int*/ /*int*/ ++ /*update: int*/ /*int*/ intLocal; |
| /*invoke: int*/ /*int*/ -- /*update: int*/ /*int*/ intLocal; |
| |
| /*update: dynamic*/ /*dynamic*/ dynamicLocal /*invoke: dynamic*/ /*int*/ ++; |
| /*update: dynamic*/ /*dynamic*/ dynamicLocal /*invoke: dynamic*/ /*int*/ --; |
| /*invoke: dynamic*/ /*int*/ ++ /*update: dynamic*/ /*dynamic*/ dynamicLocal; |
| /*invoke: dynamic*/ /*int*/ -- /*update: dynamic*/ /*dynamic*/ dynamicLocal; |
| } |