tests for IDEA-135314 Inner classes constructors calls decompiled incorrectly
This commit is contained in:
@@ -58,5 +58,6 @@ public class SingleClassesTest extends SingleClassesTestBase {
|
|||||||
@Test public void testAnonymousClass() { doTest("pkg/TestAnonymousClass"); }
|
@Test public void testAnonymousClass() { doTest("pkg/TestAnonymousClass"); }
|
||||||
@Test public void testThrowException() { doTest("pkg/TestThrowException"); }
|
@Test public void testThrowException() { doTest("pkg/TestThrowException"); }
|
||||||
@Test public void testInnerLocal() { doTest("pkg/TestInnerLocal"); }
|
@Test public void testInnerLocal() { doTest("pkg/TestInnerLocal"); }
|
||||||
|
@Test public void testInnerLocalPkg() { doTest("pkg/TestInnerLocalPkg"); }
|
||||||
@Test public void testInnerSignature() { doTest("pkg/TestInnerSignature"); }
|
@Test public void testInnerSignature() { doTest("pkg/TestInnerSignature"); }
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
BIN
testData/classes/pkg/TestInnerLocalPkg$1Inner.class
Normal file
BIN
testData/classes/pkg/TestInnerLocalPkg$1Inner.class
Normal file
Binary file not shown.
BIN
testData/classes/pkg/TestInnerLocalPkg$2Inner.class
Normal file
BIN
testData/classes/pkg/TestInnerLocalPkg$2Inner.class
Normal file
Binary file not shown.
BIN
testData/classes/pkg/TestInnerLocalPkg$Inner1.class
Normal file
BIN
testData/classes/pkg/TestInnerLocalPkg$Inner1.class
Normal file
Binary file not shown.
Binary file not shown.
BIN
testData/classes/pkg/TestInnerLocalPkg$Inner1Static.class
Normal file
BIN
testData/classes/pkg/TestInnerLocalPkg$Inner1Static.class
Normal file
Binary file not shown.
BIN
testData/classes/pkg/TestInnerLocalPkg.class
Normal file
BIN
testData/classes/pkg/TestInnerLocalPkg.class
Normal file
Binary file not shown.
@@ -9,6 +9,8 @@ public class TestInnerLocal {
|
|||||||
}
|
}
|
||||||
|
|
||||||
new Inner("test");// 25
|
new Inner("test");// 25
|
||||||
|
new TestInnerLocal.Inner1Static("test");// 26
|
||||||
|
new TestInnerLocal.Inner1Static.Inner2Static("test");// 27
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testMethod() {
|
public void testMethod() {
|
||||||
@@ -21,6 +23,9 @@ public class TestInnerLocal {
|
|||||||
}
|
}
|
||||||
|
|
||||||
new Inner("test");// 37
|
new Inner("test");// 37
|
||||||
|
new TestInnerLocal.Inner1Static("test");// 38
|
||||||
|
new TestInnerLocal.Inner1("test");// 39
|
||||||
|
new TestInnerLocal.Inner1Static.Inner2Static("test");// 40
|
||||||
}
|
}
|
||||||
|
|
||||||
static class Inner1Static {
|
static class Inner1Static {
|
||||||
@@ -57,42 +62,52 @@ class 'TestInnerLocal$1Inner' {
|
|||||||
class 'TestInnerLocal' {
|
class 'TestInnerLocal' {
|
||||||
method 'testStaticMethod ()V' {
|
method 'testStaticMethod ()V' {
|
||||||
4 10
|
4 10
|
||||||
|
e 11
|
||||||
|
18 12
|
||||||
}
|
}
|
||||||
|
|
||||||
method 'testMethod ()V' {
|
method 'testMethod ()V' {
|
||||||
5 22
|
5 24
|
||||||
|
f 25
|
||||||
|
1a 26
|
||||||
|
24 27
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class 'TestInnerLocal$2Inner' {
|
class 'TestInnerLocal$2Inner' {
|
||||||
method '<init> (LTestInnerLocal;Ljava/lang/String;)V' {
|
method '<init> (LTestInnerLocal;Ljava/lang/String;)V' {
|
||||||
b 18
|
b 20
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class 'TestInnerLocal$Inner1Static' {
|
class 'TestInnerLocal$Inner1Static' {
|
||||||
method '<init> (Ljava/lang/String;)V' {
|
method '<init> (Ljava/lang/String;)V' {
|
||||||
6 29
|
6 34
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class 'TestInnerLocal$Inner1Static$Inner2Static' {
|
class 'TestInnerLocal$Inner1Static$Inner2Static' {
|
||||||
method '<init> (Ljava/lang/String;)V' {
|
method '<init> (Ljava/lang/String;)V' {
|
||||||
6 36
|
6 41
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class 'TestInnerLocal$Inner1' {
|
class 'TestInnerLocal$Inner1' {
|
||||||
method '<init> (LTestInnerLocal;Ljava/lang/String;)V' {
|
method '<init> (LTestInnerLocal;Ljava/lang/String;)V' {
|
||||||
b 45
|
b 50
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Lines mapping:
|
Lines mapping:
|
||||||
22 <-> 7
|
22 <-> 7
|
||||||
25 <-> 11
|
25 <-> 11
|
||||||
34 <-> 19
|
26 <-> 12
|
||||||
37 <-> 23
|
27 <-> 13
|
||||||
46 <-> 46
|
34 <-> 21
|
||||||
53 <-> 30
|
37 <-> 25
|
||||||
59 <-> 37
|
38 <-> 26
|
||||||
|
39 <-> 27
|
||||||
|
40 <-> 28
|
||||||
|
46 <-> 51
|
||||||
|
53 <-> 35
|
||||||
|
59 <-> 42
|
||||||
|
|||||||
115
testData/results/TestInnerLocalPkg.dec
Normal file
115
testData/results/TestInnerLocalPkg.dec
Normal file
@@ -0,0 +1,115 @@
|
|||||||
|
package pkg;
|
||||||
|
|
||||||
|
public class TestInnerLocalPkg {
|
||||||
|
public static void testStaticMethod() {
|
||||||
|
class Inner {
|
||||||
|
final String x;
|
||||||
|
|
||||||
|
public Inner(String var1) {
|
||||||
|
this.x = var1;// 24
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
new Inner("test");// 27
|
||||||
|
new TestInnerLocalPkg.Inner1Static("test");// 28
|
||||||
|
new TestInnerLocalPkg.Inner1Static.Inner2Static("test");// 29
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testMethod() {
|
||||||
|
class Inner {
|
||||||
|
final String x;
|
||||||
|
|
||||||
|
public Inner(String var2) {
|
||||||
|
this.x = var2;// 36
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
new Inner("test");// 39
|
||||||
|
new TestInnerLocalPkg.Inner1Static("test");// 40
|
||||||
|
new TestInnerLocalPkg.Inner1("test");// 41
|
||||||
|
new TestInnerLocalPkg.Inner1Static.Inner2Static("test");// 42
|
||||||
|
}
|
||||||
|
|
||||||
|
static class Inner1Static {
|
||||||
|
final String x;
|
||||||
|
|
||||||
|
public Inner1Static(String var1) {
|
||||||
|
this.x = var1;// 55
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class Inner2Static {
|
||||||
|
final String x;
|
||||||
|
|
||||||
|
public Inner2Static(String var1) {
|
||||||
|
this.x = var1;// 61
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Inner1 {
|
||||||
|
final String x;
|
||||||
|
|
||||||
|
public Inner1(String var2) {
|
||||||
|
this.x = var2;// 48
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class 'pkg/TestInnerLocalPkg$1Inner' {
|
||||||
|
method '<init> (Ljava/lang/String;)V' {
|
||||||
|
6 8
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class 'pkg/TestInnerLocalPkg' {
|
||||||
|
method 'testStaticMethod ()V' {
|
||||||
|
4 12
|
||||||
|
e 13
|
||||||
|
18 14
|
||||||
|
}
|
||||||
|
|
||||||
|
method 'testMethod ()V' {
|
||||||
|
5 26
|
||||||
|
f 27
|
||||||
|
1a 28
|
||||||
|
24 29
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class 'pkg/TestInnerLocalPkg$2Inner' {
|
||||||
|
method '<init> (Lpkg/TestInnerLocalPkg;Ljava/lang/String;)V' {
|
||||||
|
b 22
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class 'pkg/TestInnerLocalPkg$Inner1Static' {
|
||||||
|
method '<init> (Ljava/lang/String;)V' {
|
||||||
|
6 36
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class 'pkg/TestInnerLocalPkg$Inner1Static$Inner2Static' {
|
||||||
|
method '<init> (Ljava/lang/String;)V' {
|
||||||
|
6 43
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class 'pkg/TestInnerLocalPkg$Inner1' {
|
||||||
|
method '<init> (Lpkg/TestInnerLocalPkg;Ljava/lang/String;)V' {
|
||||||
|
b 52
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Lines mapping:
|
||||||
|
24 <-> 9
|
||||||
|
27 <-> 13
|
||||||
|
28 <-> 14
|
||||||
|
29 <-> 15
|
||||||
|
36 <-> 23
|
||||||
|
39 <-> 27
|
||||||
|
40 <-> 28
|
||||||
|
41 <-> 29
|
||||||
|
42 <-> 30
|
||||||
|
48 <-> 53
|
||||||
|
55 <-> 37
|
||||||
|
61 <-> 44
|
||||||
@@ -23,8 +23,8 @@ public class TestInnerLocal {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
new Inner("test");
|
new Inner("test");
|
||||||
//new Inner1Static("test");
|
new Inner1Static("test");
|
||||||
//new Inner1Static.Inner2Static("test");
|
new Inner1Static.Inner2Static("test");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testMethod() {
|
public void testMethod() {
|
||||||
@@ -35,9 +35,9 @@ public class TestInnerLocal {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
new Inner("test");
|
new Inner("test");
|
||||||
//new Inner1Static("test");
|
new Inner1Static("test");
|
||||||
//new Inner1("test");
|
new Inner1("test");
|
||||||
//new Inner1Static.Inner2Static("test");
|
new Inner1Static.Inner2Static("test");
|
||||||
}
|
}
|
||||||
|
|
||||||
class Inner1 {
|
class Inner1 {
|
||||||
|
|||||||
65
testData/src/pkg/TestInnerLocalPkg.java
Normal file
65
testData/src/pkg/TestInnerLocalPkg.java
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2000-2014 JetBrains s.r.o.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package pkg;
|
||||||
|
|
||||||
|
public class TestInnerLocalPkg {
|
||||||
|
public static void testStaticMethod() {
|
||||||
|
class Inner {
|
||||||
|
final String x;
|
||||||
|
public Inner(String x) {
|
||||||
|
this.x = x;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
new Inner("test");
|
||||||
|
new Inner1Static("test");
|
||||||
|
new Inner1Static.Inner2Static("test");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testMethod() {
|
||||||
|
class Inner {
|
||||||
|
final String x;
|
||||||
|
public Inner(String x) {
|
||||||
|
this.x = x;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
new Inner("test");
|
||||||
|
new Inner1Static("test");
|
||||||
|
new Inner1("test");
|
||||||
|
new Inner1Static.Inner2Static("test");
|
||||||
|
}
|
||||||
|
|
||||||
|
class Inner1 {
|
||||||
|
final String x;
|
||||||
|
public Inner1(String x) {
|
||||||
|
this.x = x;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static class Inner1Static {
|
||||||
|
final String x;
|
||||||
|
public Inner1Static(String x) {
|
||||||
|
this.x = x;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class Inner2Static {
|
||||||
|
final String x;
|
||||||
|
public Inner2Static(String x) {
|
||||||
|
this.x = x;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user