123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
-
- class Target {
- public void resize(int i) {}
- }
-
- /** @testcase invalid number and type of proceed arguments */
- aspect A {
- void around(Target buffer)
- : call(void Target.resize(..)) && target(buffer) {
- proceed(); // expect CE here
- }
- void around(int i, Target buffer)
- : call(void Target.resize(..)) && args(i) && target(buffer) {
- /** @testcase invalid proceed args - none, 2 expected */
- proceed(); // expect CE here
- /** @testcase invalid proceed args - 1, 2 expected */
- proceed(i); // expect CE here
- // coercion is passing
- /** @testcase invalid proceed args - wrong type 1, 2 expected */
- proceed(buffer); // expect CE here
- /** @testcase invalid proceed args - wrong type 2, 2 expected */
- proceed(buffer, i); // expect CE here
- }
- void around(int i)
- : call(void Target.resize(..)) && args(i) {
- /** @testcase invalid proceed args - wrong type */
- proceed(new Integer(0)); // expect CE here
- /** @testcase invalid proceed args - wrong type 2, 1 expected */
- proceed(new Integer(0), 0); // expect CE here
- /** @testcase invalid proceed args - wrong type 2, 1 expected */
- proceed(0, new Integer(0)); // expect CE here
- }
-
- void around(int i, Target buffer)
- : call(void Target.resize(..)) && args(i) && target(buffer) {
- /** @testcase invalid proceed args - float -> int */
- proceed(3.1, buffer); // expect CE here
- /** @testcase invalid proceed args - String -> int */
- proceed("1", buffer); // expect CE here
- proceed('a', buffer); // char -> int is legal
- // coercion is passing
- /** @testcase invalid proceed args - Object -> Target */
- proceed(i, (Object)null); // expect CE here
- proceed(i, null); //null -> Target is legal
- /** @testcase invalid proceed args - wrong type 3-> Target */
- proceed(i, 3); // expect CE here
- }
- }
|