| // Copyright (c) 2015, 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. |
| |
| /** |
| * @assertion Execution of a postfix expression of the form e1?.v++ is |
| * equivalent to executing ((x) => x == null? null: x.v++)(e1) unless e1 is a |
| * type literal, in which case it is equivalent to e1.v++ . |
| * The static type of such an expression is the static type of e1.v. |
| * @description Checks that static type of e1?.v++ is static type of e1.v |
| * static-clean |
| * @author sgrekhov@unipro.ru |
| */ |
| class C { |
| int v = 0; |
| dynamic v2; |
| } |
| |
| main() { |
| var c1 = new C() as C?; |
| int? a1 = c1?.v++; |
| try { int? a2 = c1?.v2++; } catch (e) {} |
| C? c2; |
| int? a3 = c2?.v++; |
| int? a4 = c2?.v2++; |
| } |