You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

IntroducedFieldInc.java 937B

123456789101112131415161718192021222324252627282930313233
  1. import org.aspectj.testing.Tester;
  2. interface I {}
  3. /** @testcase PR#757 Incrementing interface-introduced field */
  4. public class IntroducedFieldInc implements I{
  5. public static void main (String args[]) {
  6. IntroducedFieldInc i = new IntroducedFieldInc();
  7. // no bug
  8. Tester.check(1 == (((I)i).count = 1), "((I)i).count = 1");
  9. Tester.check(2 == (++(i).count), "++((I)i).count");
  10. // bug
  11. Tester.check(3 == (++((I)i).count), "++((I)i).count");
  12. Tester.check(3 == (((I)i).count++), "((I)i).count++");
  13. Tester.check(5 == (((I)i).count += 1), "((I)i).count += 1");
  14. Tester.checkEqual((getI().count += 1), 3, "getI().count += 1");
  15. Tester.checkEqual(getICount, 1, "getI() called");
  16. }
  17. static int getICount = 0;
  18. public static I getI() {
  19. getICount++;
  20. return new IntroducedFieldInc();
  21. }
  22. }
  23. aspect A {
  24. public int I.count = 2;
  25. }