Improved kotlin decompiler range indexes

Fixed #KT-30628
This commit is contained in:
Igor Yakovlev
2020-01-22 03:50:05 +03:00
parent cb1c0344b8
commit 48db96b66d
27 changed files with 326 additions and 55 deletions
@@ -0,0 +1,10 @@
import testData.libraries.*;
class TestClassAndConstructors {
void foo() {
SomeClassWithConstructors inst = new SomeClassWithConstructors("arg");
SomeClassWithConstructors inst2 = new SomeClassWithConstructors(2);
}
}
@@ -0,0 +1,5 @@
Actual data differs from file content: ClassAndConstuctors.source.expected expected:< [SomeClassWithConstructors.class
public final class <1><2><3><4>SomeClassWithConstructors public constructor(arg: kotlin.String)] {
> but was:< [classAndConstructors.kt
class <1><2><3><4>SomeClassWithConstructors(private val arg: String) ] {
>
@@ -0,0 +1,2 @@
SomeClassWithConstructors.class
public final class <1><2><3><4>SomeClassWithConstructors public constructor(arg: kotlin.String) {
@@ -0,0 +1,11 @@
import testData.libraries.*;
class TestOverload {
void foo() {
OverloadedFunKt.overloadedFun("", null, 2, null);
OverloadedFunKt.overloadedFun("", null, true, 2, null);
OverloadedFunKt.overloadedFun("", null, true, 2, 3, null);
}
}
@@ -0,0 +1,10 @@
Actual data differs from file content: OverloadedFun.source.expected expected:<...d from a class file
[// Implementation of methods is not available
package testData.libraries
@kotlin.jvm.JvmOverloads public fun <T> kotlin.String.<2><4><6>overloadedFun(vararg specs: kotlin.String, allowExisting: kotlin.Boolean /* = compiled code */, x: kotlin.Int, y: kotlin.Int /* = compiled code */, z: T): kotlin.String { /* compiled code */ }]
> but was:<...d from a class file
[ overloadedFun.kt
fun <T> String.<2><4><6>overloadedFun(vararg specs: String, allowExisting: Boolean = false, x: Int, y: Int = 2, z: T): String {]
>
@@ -0,0 +1,7 @@
OverloadedFunKt.class
<1><3><5>// IntelliJ API Decompiler stub source generated from a class file
// Implementation of methods is not available
package testData.libraries
@kotlin.jvm.JvmOverloads public fun <T> kotlin.String.<2><4><6>overloadedFun(vararg specs: kotlin.String, allowExisting: kotlin.Boolean /* = compiled code */, x: kotlin.Int, y: kotlin.Int /* = compiled code */, z: T): kotlin.String { /* compiled code */ }
@@ -0,0 +1,7 @@
import testData.libraries.*;
class TestRenamedElements {
void foo() {
RenamedElementsKt.renamedFun(2);
}
}
@@ -0,0 +1,12 @@
Actual data differs from file content: RenamedElements.source.expected expected:<[RenamedElementsKt.class
<1>// IntelliJ API Decompiler stub source generated from a class file
// Implementation of methods is not available
package testData.libraries
@kotlin.jvm.JvmName public fun <2>funToRename(x: kotlin.Int): kotlin.Unit { /* compiled code */ }]
> but was:<[ RenamedElementsKt.class
<1>// IntelliJ API Decompiler stub source generated from a class file
renamedElements.kt
fun <2>funToRename(x: Int) {]
>
@@ -0,0 +1,7 @@
RenamedElementsKt.class
<1>// IntelliJ API Decompiler stub source generated from a class file
// Implementation of methods is not available
package testData.libraries
@kotlin.jvm.JvmName public fun <2>funToRename(x: kotlin.Int): kotlin.Unit { /* compiled code */ }