IDEA-151950 Decompiler doesn't work for classes from JDK 9 - support java 9 string concatenation

This commit is contained in:
Egor.Ushakov
2016-03-01 18:04:29 +03:00
parent f128515325
commit 4724fd78a6
11 changed files with 206 additions and 25 deletions

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,27 @@
package java9;
public class TestJava9StringConcat {
public String test1(String var1, int var2) {
return var1 + var2;// 20
}
public String test2(String var1, int var2, Object var3) {
return "(" + var1 + "-" + var2 + "---" + var3 + ")";// 24
}
}
class 'java9/TestJava9StringConcat' {
method 'test1 (Ljava/lang/String;I)Ljava/lang/String;' {
2 4
7 4
}
method 'test2 (Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;' {
3 8
8 8
}
}
Lines mapping:
20 <-> 5
24 <-> 9

View File

@@ -0,0 +1,31 @@
package pkg;
public class TestStringConcat {
public String test1(String var1, int var2) {
return var1 + var2;// 20
}
public String test2(String var1, int var2, Object var3) {
return "(" + var1 + "-" + var2 + "---" + var3 + ")";// 24
}
}
class 'pkg/TestStringConcat' {
method 'test1 (Ljava/lang/String;I)Ljava/lang/String;' {
f 4
12 4
}
method 'test2 (Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;' {
7 8
10 8
19 8
22 8
27 8
2a 8
}
}
Lines mapping:
20 <-> 5
24 <-> 9

View File

@@ -0,0 +1,26 @@
/*
* 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 java9;
public class TestJava9StringConcat {
public String test1(String prefix, int a) {
return prefix + a;
}
public String test2(String var, int b, Object c) {
return "(" + var + "-" + b + "---" + c + ")";
}
}

Binary file not shown.

View File

@@ -0,0 +1,26 @@
/*
* 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 TestStringConcat {
public String test1(String prefix, int a) {
return prefix + a;
}
public String test2(String var, int b, Object c) {
return "(" + var + "-" + b + "---" + c + ")";
}
}