|
|
@@ -0,0 +1,79 @@ |
|
|
|
|
|
|
|
/** @testcase PR#31724 omnibus declare-warning test */ |
|
|
|
public class DeclareWarning { |
|
|
|
static { |
|
|
|
if (null == System.getProperty("ignore")) { // CW 5 |
|
|
|
throw new Error("never thrown"); |
|
|
|
} |
|
|
|
} |
|
|
|
static int staticInt; |
|
|
|
int instanceInt; |
|
|
|
public static void main (String[] args) { |
|
|
|
DeclareWarning dw = new DeclareWarning(); // CW 12..18 |
|
|
|
int i = staticInt; |
|
|
|
i = dw.instanceInt; |
|
|
|
staticInt = 2; |
|
|
|
dw.instanceInt = 2; |
|
|
|
run(); |
|
|
|
dw.irun(); |
|
|
|
throw new Error("compile-only test"); |
|
|
|
} |
|
|
|
public static void run() {} // CW 21..23 |
|
|
|
public void irun() {} |
|
|
|
public DeclareWarning() { |
|
|
|
try { |
|
|
|
long l = System.currentTimeMillis(); |
|
|
|
if (0l == l) { |
|
|
|
throw new Error("never thrown"); |
|
|
|
} else if (1l == l) { |
|
|
|
throw new RuntimeException("never thrown"); |
|
|
|
} else if (2l == l) { |
|
|
|
throw new OutOfMemoryError("never thrown"); |
|
|
|
} |
|
|
|
} catch (OutOfMemoryError e) { |
|
|
|
// CW 34 |
|
|
|
System.err.println("never run"); |
|
|
|
} catch (Error e) { |
|
|
|
// CW 37 |
|
|
|
System.err.println("never run"); |
|
|
|
} catch (RuntimeException x) { |
|
|
|
// CW 40 |
|
|
|
System.err.println("never run"); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
aspect A { |
|
|
|
declare warning: staticinitialization(DeclareWarning) |
|
|
|
: "staticinitialization(DeclareWarning)"; |
|
|
|
declare warning: initialization(DeclareWarning.new(..)) |
|
|
|
: "initialization(DeclareWarning)"; |
|
|
|
declare warning: get(int staticInt) : "get staticInt"; |
|
|
|
declare warning: get(int instanceInt) : "get instanceInt"; |
|
|
|
declare warning: set(int staticInt) : "set staticInt"; |
|
|
|
declare warning: set(int instanceInt) : "set instanceInt"; |
|
|
|
declare warning: call(void run()) : "call(void run())"; |
|
|
|
declare warning: call(void irun()) : "call(void irun())"; |
|
|
|
declare warning: call(DeclareWarning.new()) |
|
|
|
: "call(DeclareWarning.new())"; |
|
|
|
declare warning: execution(void run()) : "execution(void run())"; |
|
|
|
declare warning: execution(void irun()) : "execution(void irun())"; |
|
|
|
declare warning: execution(DeclareWarning.new()) |
|
|
|
: "execution(DeclareWarning.new())"; |
|
|
|
declare warning: handler(Error) : "handler(Error)"; |
|
|
|
declare warning: handler(OutOfMemoryError) && within(DeclareWarning) |
|
|
|
: "handler(OutOfMemoryError) && within(DeclareWarning)"; |
|
|
|
declare warning: handler(RuntimeException) |
|
|
|
&& withincode(DeclareWarning.new()) |
|
|
|
: "handler(RuntimeException) && withincode(DeclareWarning.new())"; |
|
|
|
declare warning: adviceexecution() && within(A) |
|
|
|
: "adviceExecution() && within(A)"; |
|
|
|
|
|
|
|
before() : initialization(DeclareWarning.new(..)) { |
|
|
|
// CW 73 |
|
|
|
long l = System.currentTimeMillis(); |
|
|
|
if (0l == l) { |
|
|
|
throw new Error("never thrown"); |
|
|
|
} |
|
|
|
} |
|
|
|
} |