blob: ad0367b55f14188102c614453763dd3d48319add [file] [log] [blame]
// Copyright (c) 2016, 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 v++, where v is an
* identifier, is equivalent to executing (){var r = v; v = r + 1; return r}().
* ...
* The above ensures that if v is a field, the getter gets called exactly once.
* Likewise in the cases below.
* @description Checks that in C.v-- expression, the getter gets called exactly
* once
* @author sgrekhov@unipro.ru
*/
import '../../../Utils/expect.dart';
class C {
static int getCounter = 0;
static int _v = 0;
static int get v {
getCounter++;
return _v;
}
static void set v(int val) {
_v = val;
}
}
main() {
C.v--;
Expect.equals(C.getCounter, 1);
}