Lines 24-30
Link Here
|
24 |
|
24 |
|
25 |
static { |
25 |
static { |
26 |
// TESTS_NAMES = new String[] { "test000" }; |
26 |
// TESTS_NAMES = new String[] { "test000" }; |
27 |
// TESTS_NUMBERS = new int[] { 63, 64 }; |
27 |
// TESTS_NUMBERS = new int[] { 40, 41, 43, 45, 63, 64 }; |
28 |
// TESTS_RANGE = new int[] { 11, -1 }; |
28 |
// TESTS_RANGE = new int[] { 11, -1 }; |
29 |
} |
29 |
} |
30 |
public TryStatementTest(String name) { |
30 |
public TryStatementTest(String name) { |
Lines 1966-1996
Link Here
|
1966 |
" 14 return\n" + |
1966 |
" 14 return\n" + |
1967 |
" 15 aconst_null\n" + |
1967 |
" 15 aconst_null\n" + |
1968 |
" 16 astore_2 [o]\n" + |
1968 |
" 16 astore_2 [o]\n" + |
1969 |
" 17 goto 6\n" + |
1969 |
" 17 getstatic java.lang.System.out : java.io.PrintStream [16]\n" + |
1970 |
" 20 astore_3\n" + |
1970 |
" 20 ldc <String \"done\"> [22]\n" + |
1971 |
" 21 getstatic java.lang.System.out : java.io.PrintStream [16]\n" + |
1971 |
" 22 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n" + |
1972 |
" 24 ldc <String \"done\"> [22]\n" + |
1972 |
" 25 return\n" + |
1973 |
" 26 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n" + |
1973 |
" 26 astore_3\n" + |
1974 |
" 29 aload_3\n" + |
1974 |
" 27 getstatic java.lang.System.out : java.io.PrintStream [16]\n" + |
1975 |
" 30 athrow\n" + |
1975 |
" 30 ldc <String \"done\"> [22]\n" + |
|
|
1976 |
" 32 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n" + |
1977 |
" 35 aload_3\n" + |
1978 |
" 36 athrow\n" + |
1976 |
" Exception Table:\n" + |
1979 |
" Exception Table:\n" + |
1977 |
" [pc: 0, pc: 6] -> 20 when : any\n" + |
1980 |
" [pc: 0, pc: 6] -> 26 when : any\n" + |
1978 |
" [pc: 15, pc: 20] -> 20 when : any\n" + |
1981 |
" [pc: 15, pc: 17] -> 26 when : any\n" + |
1979 |
" Line numbers:\n" + |
1982 |
" Line numbers:\n" + |
1980 |
" [pc: 0, line: 4]\n" + |
1983 |
" [pc: 0, line: 4]\n" + |
1981 |
" [pc: 4, line: 5]\n" + |
1984 |
" [pc: 4, line: 5]\n" + |
1982 |
" [pc: 6, line: 12]\n" + |
1985 |
" [pc: 6, line: 12]\n" + |
1983 |
" [pc: 14, line: 6]\n" + |
1986 |
" [pc: 14, line: 6]\n" + |
1984 |
" [pc: 15, line: 8]\n" + |
1987 |
" [pc: 15, line: 8]\n" + |
1985 |
" [pc: 17, line: 9]\n" + |
1988 |
" [pc: 17, line: 12]\n" + |
1986 |
" [pc: 20, line: 11]\n" + |
1989 |
" [pc: 25, line: 9]\n" + |
1987 |
" [pc: 21, line: 12]\n" + |
1990 |
" [pc: 26, line: 11]\n" + |
1988 |
" [pc: 29, line: 13]\n" + |
1991 |
" [pc: 27, line: 12]\n" + |
|
|
1992 |
" [pc: 35, line: 13]\n" + |
1989 |
" Local variable table:\n" + |
1993 |
" Local variable table:\n" + |
1990 |
" [pc: 0, pc: 31] local: this index: 0 type: X\n" + |
1994 |
" [pc: 0, pc: 37] local: this index: 0 type: X\n" + |
1991 |
" [pc: 0, pc: 31] local: b index: 1 type: boolean\n" + |
1995 |
" [pc: 0, pc: 37] local: b index: 1 type: boolean\n" + |
1992 |
" [pc: 6, pc: 15] local: i index: 2 type: int\n" + |
1996 |
" [pc: 6, pc: 15] local: i index: 2 type: int\n" + |
1993 |
" [pc: 17, pc: 20] local: o index: 2 type: java.lang.Object\n"; |
1997 |
" [pc: 17, pc: 26] local: o index: 2 type: java.lang.Object\n"; |
1994 |
} else { |
1998 |
} else { |
1995 |
expectedOutput = " // Method descriptor #15 (Z)V\n" + |
1999 |
expectedOutput = " // Method descriptor #15 (Z)V\n" + |
1996 |
" // Stack: 2, Locals: 4\n" + |
2000 |
" // Stack: 2, Locals: 4\n" + |
Lines 2059-2065
Link Here
|
2059 |
"X.java", |
2063 |
"X.java", |
2060 |
"public class X {\n" + |
2064 |
"public class X {\n" + |
2061 |
" public void foo(boolean b) {\n" + |
2065 |
" public void foo(boolean b) {\n" + |
2062 |
" try { \n" + |
2066 |
" try {\n" + |
2063 |
" int i = 0;\n" + |
2067 |
" int i = 0;\n" + |
2064 |
" return;\n" + |
2068 |
" return;\n" + |
2065 |
" } catch(Exception e) {\n" + |
2069 |
" } catch(Exception e) {\n" + |
Lines 2127-2157
Link Here
|
2127 |
" 7 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n" + |
2131 |
" 7 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n" + |
2128 |
" 10 return\n" + |
2132 |
" 10 return\n" + |
2129 |
" 11 astore_2 [e]\n" + |
2133 |
" 11 astore_2 [e]\n" + |
2130 |
" 12 goto 2\n" + |
2134 |
" 12 getstatic java.lang.System.out : java.io.PrintStream [16]\n" + |
2131 |
" 15 astore_3\n" + |
2135 |
" 15 ldc <String \"done\"> [22]\n" + |
2132 |
" 16 getstatic java.lang.System.out : java.io.PrintStream [16]\n" + |
2136 |
" 17 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n" + |
2133 |
" 19 ldc <String \"done\"> [22]\n" + |
2137 |
" 20 return\n" + |
2134 |
" 21 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n" + |
2138 |
" 21 astore_3\n" + |
2135 |
" 24 aload_3\n" + |
2139 |
" 22 getstatic java.lang.System.out : java.io.PrintStream [16]\n" + |
2136 |
" 25 athrow\n" + |
2140 |
" 25 ldc <String \"done\"> [22]\n" + |
|
|
2141 |
" 27 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n" + |
2142 |
" 30 aload_3\n" + |
2143 |
" 31 athrow\n" + |
2137 |
" Exception Table:\n" + |
2144 |
" Exception Table:\n" + |
2138 |
" [pc: 0, pc: 2] -> 11 when : java.lang.Exception\n" + |
2145 |
" [pc: 0, pc: 2] -> 11 when : java.lang.Exception\n" + |
2139 |
" [pc: 0, pc: 2] -> 15 when : any\n" + |
2146 |
" [pc: 0, pc: 2] -> 21 when : any\n" + |
2140 |
" [pc: 11, pc: 15] -> 15 when : any\n" + |
2147 |
" [pc: 11, pc: 12] -> 21 when : any\n" + |
2141 |
" Line numbers:\n" + |
2148 |
" Line numbers:\n" + |
2142 |
" [pc: 0, line: 4]\n" + |
2149 |
" [pc: 0, line: 4]\n" + |
2143 |
" [pc: 2, line: 9]\n" + |
2150 |
" [pc: 2, line: 9]\n" + |
2144 |
" [pc: 10, line: 5]\n" + |
2151 |
" [pc: 10, line: 5]\n" + |
2145 |
" [pc: 11, line: 6]\n" + |
2152 |
" [pc: 11, line: 6]\n" + |
2146 |
" [pc: 12, line: 7]\n" + |
2153 |
" [pc: 12, line: 9]\n" + |
2147 |
" [pc: 15, line: 8]\n" + |
2154 |
" [pc: 20, line: 7]\n" + |
2148 |
" [pc: 16, line: 9]\n" + |
2155 |
" [pc: 21, line: 8]\n" + |
2149 |
" [pc: 24, line: 10]\n" + |
2156 |
" [pc: 22, line: 9]\n" + |
|
|
2157 |
" [pc: 30, line: 10]\n" + |
2150 |
" Local variable table:\n" + |
2158 |
" Local variable table:\n" + |
2151 |
" [pc: 0, pc: 26] local: this index: 0 type: X\n" + |
2159 |
" [pc: 0, pc: 32] local: this index: 0 type: X\n" + |
2152 |
" [pc: 0, pc: 26] local: b index: 1 type: boolean\n" + |
2160 |
" [pc: 0, pc: 32] local: b index: 1 type: boolean\n" + |
2153 |
" [pc: 2, pc: 11] local: i index: 2 type: int\n" + |
2161 |
" [pc: 2, pc: 11] local: i index: 2 type: int\n" + |
2154 |
" [pc: 12, pc: 15] local: e index: 2 type: java.lang.Exception\n"; |
2162 |
" [pc: 12, pc: 21] local: e index: 2 type: java.lang.Exception\n"; |
2155 |
} else { |
2163 |
} else { |
2156 |
expectedOutput = " // Method descriptor #15 (Z)V\n" + |
2164 |
expectedOutput = " // Method descriptor #15 (Z)V\n" + |
2157 |
" // Stack: 2, Locals: 4\n" + |
2165 |
" // Stack: 2, Locals: 4\n" + |
Lines 2523-2565
Link Here
|
2523 |
" 63 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2531 |
" 63 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2524 |
" 66 aload_3 [contexts]\n" + |
2532 |
" 66 aload_3 [contexts]\n" + |
2525 |
" 67 invokevirtual java.io.PrintStream.print(java.lang.Object) : void [21]\n" + |
2533 |
" 67 invokevirtual java.io.PrintStream.print(java.lang.Object) : void [21]\n" + |
2526 |
" 70 goto 13\n" + |
2534 |
" 70 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2527 |
" 73 astore 5\n" + |
2535 |
" 73 new java.lang.StringBuilder [27]\n" + |
2528 |
" 75 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2536 |
" 76 dup\n" + |
2529 |
" 78 new java.lang.StringBuilder [27]\n" + |
2537 |
" 77 ldc <String \"#inner -> \"> [29]\n" + |
2530 |
" 81 dup\n" + |
2538 |
" 79 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + |
2531 |
" 82 ldc <String \"#inner -> \"> [29]\n" + |
2539 |
" 82 iload_1 [a]\n" + |
2532 |
" 84 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + |
2540 |
" 83 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + |
2533 |
" 87 iload_1 [a]\n" + |
2541 |
" 86 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + |
2534 |
" 88 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + |
2542 |
" 89 invokevirtual java.io.PrintStream.print(java.lang.String) : void [42]\n" + |
2535 |
" 91 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + |
2543 |
" 92 iconst_0\n" + |
2536 |
" 94 invokevirtual java.io.PrintStream.print(java.lang.String) : void [42]\n" + |
2544 |
" 93 istore 7 [var]\n" + |
2537 |
" 97 aload 5\n" + |
2545 |
" 95 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2538 |
" 99 athrow\n" + |
2546 |
" 98 new java.lang.StringBuilder [27]\n" + |
2539 |
" 100 astore_2 [e]\n" + |
2547 |
" 101 dup\n" + |
2540 |
" 101 goto 35\n" + |
2548 |
" 102 ldc <String \"#save -> \"> [44]\n" + |
2541 |
" 104 astore 6\n" + |
2549 |
" 104 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + |
2542 |
" 106 iconst_0\n" + |
2550 |
" 107 iload_1 [a]\n" + |
2543 |
" 107 istore 7 [var]\n" + |
2551 |
" 108 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + |
2544 |
" 109 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2552 |
" 111 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + |
2545 |
" 112 new java.lang.StringBuilder [27]\n" + |
2553 |
" 114 invokevirtual java.io.PrintStream.println(java.lang.String) : void [46]\n" + |
2546 |
" 115 dup\n" + |
2554 |
" 117 return\n" + |
2547 |
" 116 ldc <String \"#save -> \"> [44]\n" + |
2555 |
" 118 astore 5\n" + |
2548 |
" 118 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + |
2556 |
" 120 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2549 |
" 121 iload_1 [a]\n" + |
2557 |
" 123 new java.lang.StringBuilder [27]\n" + |
2550 |
" 122 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + |
2558 |
" 126 dup\n" + |
2551 |
" 125 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + |
2559 |
" 127 ldc <String \"#inner -> \"> [29]\n" + |
2552 |
" 128 invokevirtual java.io.PrintStream.println(java.lang.String) : void [46]\n" + |
2560 |
" 129 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + |
2553 |
" 131 aload 6\n" + |
2561 |
" 132 iload_1 [a]\n" + |
2554 |
" 133 athrow\n" + |
2562 |
" 133 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + |
|
|
2563 |
" 136 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + |
2564 |
" 139 invokevirtual java.io.PrintStream.print(java.lang.String) : void [42]\n" + |
2565 |
" 142 aload 5\n" + |
2566 |
" 144 athrow\n" + |
2567 |
" 145 astore_2 [e]\n" + |
2568 |
" 146 iconst_0\n" + |
2569 |
" 147 istore 7 [var]\n" + |
2570 |
" 149 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2571 |
" 152 new java.lang.StringBuilder [27]\n" + |
2572 |
" 155 dup\n" + |
2573 |
" 156 ldc <String \"#save -> \"> [44]\n" + |
2574 |
" 158 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + |
2575 |
" 161 iload_1 [a]\n" + |
2576 |
" 162 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + |
2577 |
" 165 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + |
2578 |
" 168 invokevirtual java.io.PrintStream.println(java.lang.String) : void [46]\n" + |
2579 |
" 171 return\n" + |
2580 |
" 172 astore 6\n" + |
2581 |
" 174 iconst_0\n" + |
2582 |
" 175 istore 7 [var]\n" + |
2583 |
" 177 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2584 |
" 180 new java.lang.StringBuilder [27]\n" + |
2585 |
" 183 dup\n" + |
2586 |
" 184 ldc <String \"#save -> \"> [44]\n" + |
2587 |
" 186 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + |
2588 |
" 189 iload_1 [a]\n" + |
2589 |
" 190 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + |
2590 |
" 193 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + |
2591 |
" 196 invokevirtual java.io.PrintStream.println(java.lang.String) : void [46]\n" + |
2592 |
" 199 aload 6\n" + |
2593 |
" 201 athrow\n" + |
2555 |
" Exception Table:\n" + |
2594 |
" Exception Table:\n" + |
2556 |
" [pc: 6, pc: 13] -> 61 when : java.lang.NullPointerException\n" + |
2595 |
" [pc: 6, pc: 13] -> 61 when : java.lang.NullPointerException\n" + |
2557 |
" [pc: 6, pc: 13] -> 73 when : any\n" + |
2596 |
" [pc: 6, pc: 13] -> 118 when : any\n" + |
2558 |
" [pc: 61, pc: 73] -> 73 when : any\n" + |
2597 |
" [pc: 61, pc: 70] -> 118 when : any\n" + |
2559 |
" [pc: 2, pc: 35] -> 100 when : java.lang.Exception\n" + |
2598 |
" [pc: 2, pc: 35] -> 145 when : java.lang.Exception\n" + |
2560 |
" [pc: 61, pc: 100] -> 100 when : java.lang.Exception\n" + |
2599 |
" [pc: 61, pc: 92] -> 145 when : java.lang.Exception\n" + |
2561 |
" [pc: 2, pc: 35] -> 104 when : any\n" + |
2600 |
" [pc: 118, pc: 145] -> 145 when : java.lang.Exception\n" + |
2562 |
" [pc: 61, pc: 104] -> 104 when : any\n" + |
2601 |
" [pc: 2, pc: 35] -> 172 when : any\n" + |
|
|
2602 |
" [pc: 61, pc: 92] -> 172 when : any\n" + |
2603 |
" [pc: 118, pc: 146] -> 172 when : any\n" + |
2563 |
" Line numbers:\n" + |
2604 |
" Line numbers:\n" + |
2564 |
" [pc: 0, line: 3]\n" + |
2605 |
" [pc: 0, line: 3]\n" + |
2565 |
" [pc: 2, line: 5]\n" + |
2606 |
" [pc: 2, line: 5]\n" + |
Lines 2571-2595
Link Here
|
2571 |
" [pc: 60, line: 9]\n" + |
2612 |
" [pc: 60, line: 9]\n" + |
2572 |
" [pc: 61, line: 10]\n" + |
2613 |
" [pc: 61, line: 10]\n" + |
2573 |
" [pc: 63, line: 11]\n" + |
2614 |
" [pc: 63, line: 11]\n" + |
2574 |
" [pc: 70, line: 12]\n" + |
2615 |
" [pc: 70, line: 14]\n" + |
2575 |
" [pc: 73, line: 13]\n" + |
2616 |
" [pc: 92, line: 19]\n" + |
2576 |
" [pc: 75, line: 14]\n" + |
2617 |
" [pc: 95, line: 20]\n" + |
2577 |
" [pc: 97, line: 15]\n" + |
2618 |
" [pc: 117, line: 12]\n" + |
2578 |
" [pc: 100, line: 16]\n" + |
2619 |
" [pc: 118, line: 13]\n" + |
2579 |
" [pc: 101, line: 17]\n" + |
2620 |
" [pc: 120, line: 14]\n" + |
2580 |
" [pc: 104, line: 18]\n" + |
2621 |
" [pc: 142, line: 15]\n" + |
2581 |
" [pc: 106, line: 19]\n" + |
2622 |
" [pc: 145, line: 16]\n" + |
2582 |
" [pc: 109, line: 20]\n" + |
2623 |
" [pc: 146, line: 19]\n" + |
2583 |
" [pc: 131, line: 21]\n" + |
2624 |
" [pc: 149, line: 20]\n" + |
2584 |
" Local variable table:\n" + |
2625 |
" [pc: 171, line: 17]\n" + |
2585 |
" [pc: 0, pc: 134] local: this index: 0 type: X\n" + |
2626 |
" [pc: 172, line: 18]\n" + |
2586 |
" [pc: 2, pc: 134] local: a index: 1 type: int\n" + |
2627 |
" [pc: 174, line: 19]\n" + |
2587 |
" [pc: 4, pc: 100] local: warnings index: 2 type: java.lang.Object\n" + |
2628 |
" [pc: 177, line: 20]\n" + |
2588 |
" [pc: 6, pc: 100] local: contexts index: 3 type: java.lang.Object\n" + |
2629 |
" [pc: 199, line: 21]\n" + |
2589 |
" [pc: 63, pc: 73] local: npe index: 4 type: java.lang.NullPointerException\n" + |
2630 |
" Local variable table:\n" + |
2590 |
" [pc: 101, pc: 104] local: e index: 2 type: java.lang.Exception\n" + |
2631 |
" [pc: 0, pc: 202] local: this index: 0 type: X\n" + |
|
|
2632 |
" [pc: 2, pc: 202] local: a index: 1 type: int\n" + |
2633 |
" [pc: 4, pc: 145] local: warnings index: 2 type: java.lang.Object\n" + |
2634 |
" [pc: 6, pc: 145] local: contexts index: 3 type: java.lang.Object\n" + |
2635 |
" [pc: 63, pc: 118] local: npe index: 4 type: java.lang.NullPointerException\n" + |
2636 |
" [pc: 146, pc: 172] local: e index: 2 type: java.lang.Exception\n" + |
2591 |
" [pc: 38, pc: 60] local: var index: 7 type: int\n" + |
2637 |
" [pc: 38, pc: 60] local: var index: 7 type: int\n" + |
2592 |
" [pc: 109, pc: 131] local: var index: 7 type: int\n"; |
2638 |
" [pc: 95, pc: 117] local: var index: 7 type: int\n" + |
|
|
2639 |
" [pc: 149, pc: 171] local: var index: 7 type: int\n" + |
2640 |
" [pc: 177, pc: 199] local: var index: 7 type: int\n"; |
2593 |
} else { |
2641 |
} else { |
2594 |
expectedOutput = " // Method descriptor #6 ()V\n" + |
2642 |
expectedOutput = " // Method descriptor #6 ()V\n" + |
2595 |
" // Stack: 4, Locals: 8\n" + |
2643 |
" // Stack: 4, Locals: 8\n" + |
Lines 2981-3039
Link Here
|
2981 |
expectedOutput = " // Method descriptor #6 ()V\n" + |
3029 |
expectedOutput = " // Method descriptor #6 ()V\n" + |
2982 |
" // Stack: 2, Locals: 7\n" + |
3030 |
" // Stack: 2, Locals: 7\n" + |
2983 |
" public void save();\n" + |
3031 |
" public void save();\n" + |
2984 |
" 0 aconst_null\n" + |
3032 |
" 0 aconst_null\n" + |
2985 |
" 1 astore_1 [warnings]\n" + |
3033 |
" 1 astore_1 [warnings]\n" + |
2986 |
" 2 aconst_null\n" + |
3034 |
" 2 aconst_null\n" + |
2987 |
" 3 astore_2 [contexts]\n" + |
3035 |
" 3 astore_2 [contexts]\n" + |
2988 |
" 4 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
3036 |
" 4 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2989 |
" 7 ldc <String \"[try]\"> [21]\n" + |
3037 |
" 7 ldc <String \"[try]\"> [21]\n" + |
2990 |
" 9 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + |
3038 |
" 9 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + |
2991 |
" 12 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
3039 |
" 12 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2992 |
" 15 aload_1 [warnings]\n" + |
3040 |
" 15 aload_1 [warnings]\n" + |
2993 |
" 16 invokevirtual java.io.PrintStream.print(java.lang.Object) : void [29]\n" + |
3041 |
" 16 invokevirtual java.io.PrintStream.print(java.lang.Object) : void [29]\n" + |
2994 |
" 19 iconst_0\n" + |
3042 |
" 19 iconst_0\n" + |
2995 |
" 20 istore 5 [var]\n" + |
3043 |
" 20 istore 5 [var]\n" + |
2996 |
" 22 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
3044 |
" 22 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2997 |
" 25 ldc <String \"[finally]\"> [32]\n" + |
3045 |
" 25 ldc <String \"[finally]\"> [32]\n" + |
2998 |
" 27 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + |
3046 |
" 27 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + |
2999 |
" 30 aconst_null\n" + |
3047 |
" 30 aconst_null\n" + |
3000 |
" 31 astore 6 [o]\n" + |
3048 |
" 31 astore 6 [o]\n" + |
3001 |
" 33 aload 6 [o]\n" + |
3049 |
" 33 aload 6 [o]\n" + |
3002 |
" 35 invokevirtual java.lang.Object.toString() : java.lang.String [34]\n" + |
3050 |
" 35 invokevirtual java.lang.Object.toString() : java.lang.String [34]\n" + |
3003 |
" 38 pop\n" + |
3051 |
" 38 pop\n" + |
3004 |
" 39 return\n" + |
3052 |
" 39 return\n" + |
3005 |
" 40 astore_3 [npe]\n" + |
3053 |
" 40 astore_3 [npe]\n" + |
3006 |
" 41 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
3054 |
" 41 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
3007 |
" 44 ldc <String \"[npe]\"> [38]\n" + |
3055 |
" 44 ldc <String \"[npe]\"> [38]\n" + |
3008 |
" 46 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + |
3056 |
" 46 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + |
3009 |
" 49 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
3057 |
" 49 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
3010 |
" 52 aload_2 [contexts]\n" + |
3058 |
" 52 aload_2 [contexts]\n" + |
3011 |
" 53 invokevirtual java.io.PrintStream.print(java.lang.Object) : void [29]\n" + |
3059 |
" 53 invokevirtual java.io.PrintStream.print(java.lang.Object) : void [29]\n" + |
3012 |
" 56 goto 19\n" + |
3060 |
" 56 iconst_0\n" + |
3013 |
" 59 astore_1 [e]\n" + |
3061 |
" 57 istore 5 [var]\n" + |
3014 |
" 60 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
3062 |
" 59 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
3015 |
" 63 ldc <String \"[e]\"> [40]\n" + |
3063 |
" 62 ldc <String \"[finally]\"> [32]\n" + |
3016 |
" 65 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + |
3064 |
" 64 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + |
3017 |
" 68 goto 19\n" + |
3065 |
" 67 aconst_null\n" + |
3018 |
" 71 astore 4\n" + |
3066 |
" 68 astore 6 [o]\n" + |
3019 |
" 73 iconst_0\n" + |
3067 |
" 70 aload 6 [o]\n" + |
3020 |
" 74 istore 5 [var]\n" + |
3068 |
" 72 invokevirtual java.lang.Object.toString() : java.lang.String [34]\n" + |
3021 |
" 76 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
3069 |
" 75 pop\n" + |
3022 |
" 79 ldc <String \"[finally]\"> [32]\n" + |
3070 |
" 76 return\n" + |
3023 |
" 81 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + |
3071 |
" 77 astore_1 [e]\n" + |
3024 |
" 84 aconst_null\n" + |
3072 |
" 78 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
3025 |
" 85 astore 6 [o]\n" + |
3073 |
" 81 ldc <String \"[e]\"> [40]\n" + |
3026 |
" 87 aload 6 [o]\n" + |
3074 |
" 83 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + |
3027 |
" 89 invokevirtual java.lang.Object.toString() : java.lang.String [34]\n" + |
3075 |
" 86 iconst_0\n" + |
3028 |
" 92 pop\n" + |
3076 |
" 87 istore 5 [var]\n" + |
3029 |
" 93 aload 4\n" + |
3077 |
" 89 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
3030 |
" 95 athrow\n" + |
3078 |
" 92 ldc <String \"[finally]\"> [32]\n" + |
|
|
3079 |
" 94 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + |
3080 |
" 97 aconst_null\n" + |
3081 |
" 98 astore 6 [o]\n" + |
3082 |
" 100 aload 6 [o]\n" + |
3083 |
" 102 invokevirtual java.lang.Object.toString() : java.lang.String [34]\n" + |
3084 |
" 105 pop\n" + |
3085 |
" 106 return\n" + |
3086 |
" 107 astore 4\n" + |
3087 |
" 109 iconst_0\n" + |
3088 |
" 110 istore 5 [var]\n" + |
3089 |
" 112 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
3090 |
" 115 ldc <String \"[finally]\"> [32]\n" + |
3091 |
" 117 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + |
3092 |
" 120 aconst_null\n" + |
3093 |
" 121 astore 6 [o]\n" + |
3094 |
" 123 aload 6 [o]\n" + |
3095 |
" 125 invokevirtual java.lang.Object.toString() : java.lang.String [34]\n" + |
3096 |
" 128 pop\n" + |
3097 |
" 129 aload 4\n" + |
3098 |
" 131 athrow\n" + |
3031 |
" Exception Table:\n" + |
3099 |
" Exception Table:\n" + |
3032 |
" [pc: 4, pc: 19] -> 40 when : java.lang.NullPointerException\n" + |
3100 |
" [pc: 4, pc: 19] -> 40 when : java.lang.NullPointerException\n" + |
3033 |
" [pc: 0, pc: 19] -> 59 when : java.lang.Exception\n" + |
3101 |
" [pc: 0, pc: 19] -> 77 when : java.lang.Exception\n" + |
3034 |
" [pc: 40, pc: 59] -> 59 when : java.lang.Exception\n" + |
3102 |
" [pc: 40, pc: 56] -> 77 when : java.lang.Exception\n" + |
3035 |
" [pc: 0, pc: 19] -> 71 when : any\n" + |
3103 |
" [pc: 0, pc: 19] -> 107 when : any\n" + |
3036 |
" [pc: 40, pc: 71] -> 71 when : any\n" + |
3104 |
" [pc: 40, pc: 56] -> 107 when : any\n" + |
|
|
3105 |
" [pc: 77, pc: 86] -> 107 when : any\n" + |
3037 |
" Line numbers:\n" + |
3106 |
" Line numbers:\n" + |
3038 |
" [pc: 0, line: 4]\n" + |
3107 |
" [pc: 0, line: 4]\n" + |
3039 |
" [pc: 2, line: 5]\n" + |
3108 |
" [pc: 2, line: 5]\n" + |
Lines 3047-3072
Link Here
|
3047 |
" [pc: 40, line: 10]\n" + |
3116 |
" [pc: 40, line: 10]\n" + |
3048 |
" [pc: 41, line: 11]\n" + |
3117 |
" [pc: 41, line: 11]\n" + |
3049 |
" [pc: 49, line: 12]\n" + |
3118 |
" [pc: 49, line: 12]\n" + |
3050 |
" [pc: 56, line: 13]\n" + |
3119 |
" [pc: 56, line: 19]\n" + |
3051 |
" [pc: 59, line: 15]\n" + |
3120 |
" [pc: 59, line: 20]\n" + |
3052 |
" [pc: 60, line: 16]\n" + |
3121 |
" [pc: 67, line: 21]\n" + |
3053 |
" [pc: 68, line: 17]\n" + |
3122 |
" [pc: 70, line: 22]\n" + |
3054 |
" [pc: 71, line: 18]\n" + |
3123 |
" [pc: 76, line: 13]\n" + |
3055 |
" [pc: 73, line: 19]\n" + |
3124 |
" [pc: 77, line: 15]\n" + |
3056 |
" [pc: 76, line: 20]\n" + |
3125 |
" [pc: 78, line: 16]\n" + |
3057 |
" [pc: 84, line: 21]\n" + |
3126 |
" [pc: 86, line: 19]\n" + |
3058 |
" [pc: 87, line: 22]\n" + |
3127 |
" [pc: 89, line: 20]\n" + |
3059 |
" [pc: 93, line: 23]\n" + |
3128 |
" [pc: 97, line: 21]\n" + |
3060 |
" Local variable table:\n" + |
3129 |
" [pc: 100, line: 22]\n" + |
3061 |
" [pc: 0, pc: 96] local: this index: 0 type: X\n" + |
3130 |
" [pc: 106, line: 17]\n" + |
3062 |
" [pc: 2, pc: 59] local: warnings index: 1 type: java.lang.Object\n" + |
3131 |
" [pc: 107, line: 18]\n" + |
3063 |
" [pc: 4, pc: 59] local: contexts index: 2 type: java.lang.Object\n" + |
3132 |
" [pc: 109, line: 19]\n" + |
3064 |
" [pc: 41, pc: 59] local: npe index: 3 type: java.lang.NullPointerException\n" + |
3133 |
" [pc: 112, line: 20]\n" + |
3065 |
" [pc: 60, pc: 71] local: e index: 1 type: java.lang.Exception\n" + |
3134 |
" [pc: 120, line: 21]\n" + |
|
|
3135 |
" [pc: 123, line: 22]\n" + |
3136 |
" [pc: 129, line: 23]\n" + |
3137 |
" Local variable table:\n" + |
3138 |
" [pc: 0, pc: 132] local: this index: 0 type: X\n" + |
3139 |
" [pc: 2, pc: 77] local: warnings index: 1 type: java.lang.Object\n" + |
3140 |
" [pc: 4, pc: 77] local: contexts index: 2 type: java.lang.Object\n" + |
3141 |
" [pc: 41, pc: 77] local: npe index: 3 type: java.lang.NullPointerException\n" + |
3142 |
" [pc: 78, pc: 107] local: e index: 1 type: java.lang.Exception\n" + |
3066 |
" [pc: 22, pc: 39] local: var index: 5 type: int\n" + |
3143 |
" [pc: 22, pc: 39] local: var index: 5 type: int\n" + |
3067 |
" [pc: 76, pc: 93] local: var index: 5 type: int\n" + |
3144 |
" [pc: 59, pc: 76] local: var index: 5 type: int\n" + |
|
|
3145 |
" [pc: 89, pc: 106] local: var index: 5 type: int\n" + |
3146 |
" [pc: 112, pc: 129] local: var index: 5 type: int\n" + |
3068 |
" [pc: 33, pc: 39] local: o index: 6 type: java.lang.Object\n" + |
3147 |
" [pc: 33, pc: 39] local: o index: 6 type: java.lang.Object\n" + |
3069 |
" [pc: 87, pc: 93] local: o index: 6 type: java.lang.Object\n"; |
3148 |
" [pc: 70, pc: 76] local: o index: 6 type: java.lang.Object\n" + |
|
|
3149 |
" [pc: 100, pc: 106] local: o index: 6 type: java.lang.Object\n" + |
3150 |
" [pc: 123, pc: 129] local: o index: 6 type: java.lang.Object\n"; |
3070 |
} else { |
3151 |
} else { |
3071 |
expectedOutput = " // Method descriptor #6 ()V\n" + |
3152 |
expectedOutput = " // Method descriptor #6 ()V\n" + |
3072 |
" // Stack: 2, Locals: 7\n" + |
3153 |
" // Stack: 2, Locals: 7\n" + |
Lines 5441-5461
Link Here
|
5441 |
" 22 ret 3\n" + |
5522 |
" 22 ret 3\n" + |
5442 |
" Exception Table:\n" + |
5523 |
" Exception Table:\n" + |
5443 |
" [pc: 0, pc: 12] -> 13 when : any\n" |
5524 |
" [pc: 0, pc: 12] -> 13 when : any\n" |
5444 |
: new CompilerOptions(getCompilerOptions()).complianceLevel <= ClassFileConstants.JDK1_5 ? |
|
|
5445 |
" // Method descriptor #6 ()V\n" + |
5446 |
" // Stack: 3, Locals: 4\n" + |
5447 |
" void bar();\n" + |
5448 |
" 0 new X$MyClass [15]\n" + |
5449 |
" 3 dup\n" + |
5450 |
" 4 aload_0 [this]\n" + |
5451 |
" 5 invokespecial X$MyClass(X) [17]\n" + |
5452 |
" 8 astore_1 [myClass]\n" + |
5453 |
" 9 return\n" + |
5454 |
" 10 astore_3\n" + |
5455 |
" 11 aload_3\n" + |
5456 |
" 12 athrow\n" + |
5457 |
" Exception Table:\n" + |
5458 |
" [pc: 0, pc: 9] -> 10 when : any\n" |
5459 |
: |
5525 |
: |
5460 |
" // Method descriptor #6 ()V\n" + |
5526 |
" // Method descriptor #6 ()V\n" + |
5461 |
" // Stack: 3, Locals: 4\n" + |
5527 |
" // Stack: 3, Locals: 4\n" + |
Lines 5538-5561
Link Here
|
5538 |
" 23 ret 3\n" + |
5604 |
" 23 ret 3\n" + |
5539 |
" Exception Table:\n" + |
5605 |
" Exception Table:\n" + |
5540 |
" [pc: 0, pc: 12] -> 14 when : any\n" |
5606 |
" [pc: 0, pc: 12] -> 14 when : any\n" |
5541 |
: new CompilerOptions(getCompilerOptions()).complianceLevel <= ClassFileConstants.JDK1_5 ? |
5607 |
: " // Method descriptor #15 ()Ljava/lang/Object;\n" + |
5542 |
" // Method descriptor #15 ()Ljava/lang/Object;\n" + |
|
|
5543 |
" // Stack: 3, Locals: 4\n" + |
5544 |
" java.lang.Object bar();\n" + |
5545 |
" 0 new X$MyClass [16]\n" + |
5546 |
" 3 dup\n" + |
5547 |
" 4 aload_0 [this]\n" + |
5548 |
" 5 invokespecial X$MyClass(X) [18]\n" + |
5549 |
" 8 astore_1 [myClass]\n" + |
5550 |
" 9 aconst_null\n" + |
5551 |
" 10 areturn\n" + |
5552 |
" 11 astore_3\n" + |
5553 |
" 12 aload_3\n" + |
5554 |
" 13 athrow\n" + |
5555 |
" Exception Table:\n" + |
5556 |
" [pc: 0, pc: 9] -> 11 when : any\n" |
5557 |
: |
5558 |
" // Method descriptor #15 ()Ljava/lang/Object;\n" + |
5559 |
" // Stack: 3, Locals: 4\n" + |
5608 |
" // Stack: 3, Locals: 4\n" + |
5560 |
" java.lang.Object bar();\n" + |
5609 |
" java.lang.Object bar();\n" + |
5561 |
" 0 new X$MyClass [16]\n" + |
5610 |
" 0 new X$MyClass [16]\n" + |
Lines 5653-5658
Link Here
|
5653 |
"Zork cannot be resolved to a type\n" + |
5702 |
"Zork cannot be resolved to a type\n" + |
5654 |
"----------\n"); |
5703 |
"----------\n"); |
5655 |
} |
5704 |
} |
|
|
5705 |
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=248319 |
5706 |
public void test067() throws Exception { |
5707 |
this.runConformTest( |
5708 |
new String[] { |
5709 |
"X.java", |
5710 |
"public class X {\n" + |
5711 |
" public static void main(final String[] args) {\n" + |
5712 |
" System.out.println(new X().verifyError());\n" + |
5713 |
" }\n" + |
5714 |
" private Object verifyError() {\n" + |
5715 |
" try {\n" + |
5716 |
" if (someBooleanMethod()) {\n" + |
5717 |
" return null;\n" + |
5718 |
" }\n" + |
5719 |
" return getStuff();\n" + |
5720 |
" } catch (final Exception ex) {\n" + |
5721 |
" return null;\n" + |
5722 |
" } finally {\n" + |
5723 |
" while (someBooleanMethod()) {\n" + |
5724 |
" anyMethod();\n" + |
5725 |
" }\n" + |
5726 |
" }\n" + |
5727 |
" }\n" + |
5728 |
" private void anyMethod() { /*empty*/ }\n" + |
5729 |
" private Object getStuff() { return null; }\n" + |
5730 |
" private boolean someBooleanMethod() { return false; }\n" + |
5731 |
"}\n" + |
5732 |
"", |
5733 |
}, |
5734 |
"null"); |
5735 |
} |
5656 |
public static Class testClass() { |
5736 |
public static Class testClass() { |
5657 |
return TryStatementTest.class; |
5737 |
return TryStatementTest.class; |
5658 |
} |
5738 |
} |