KT-11678 Support navigation from Java source to Kotlin binaries

Introduce LightMemberOriginForCompiledElement which holds logic for finding corresponding decompiled declaration
ByJvmSignatureIndexer stores the required information while building decompiled text

Some are unsolved in this commit:
   - constructors
   - @Jvm* and other unregular generated members
   - annotation methods

 #KT-11678 Fixed
This commit is contained in:
Pavel V. Talanov
2016-03-29 19:32:58 +03:00
parent f9fa365059
commit e19cc04c63
14 changed files with 339 additions and 12 deletions

View File

@@ -0,0 +1,8 @@
public class Field {
public static void foo() {
(new k.Class()).p<caret>rop;
}
}
// REF: (in k.Class).prop
// CLS_REF: (in k.Class).prop

View File

@@ -5,4 +5,4 @@ public class PackageFacade {
}
// REF: /src/<test dir>/resolve/referenceInJava/dependency.dependencies.kt
// CLS_REF: (k).DependenciesKt
// CLS_REF: <jar>!/k.DependenciesKt.class

View File

@@ -0,0 +1,8 @@
public class MethodOfDeeplyNested {
public static void foo() {
(new k.Class.F.F()).f<caret>unction();
}
}
// REF: (in k.Class.F.F).function()
// CLS_REF: (in k.Class.F.F).function()

View File

@@ -0,0 +1,8 @@
public class MethodWithParameters {
public static void foo() {
(new k.Class()).f<caret>unction2();
}
}
// REF: (in k.Class).function2(Byte, Char, Short, Int, Long, Boolean, Float, Double, ByteArray, CharArray, IntArray, LongArray, BooleanArray, FloatArray, DoubleArray, Array<String>, Array<ByteArray>, Array<Array<String>>, T, G, String, Class.F, Class.G, Class.F.F)
// CLS_REF: (in k.Class).function2(kotlin.Byte, kotlin.Char, kotlin.Short, kotlin.Int, kotlin.Long, kotlin.Boolean, kotlin.Float, kotlin.Double, kotlin.ByteArray, kotlin.CharArray, kotlin.IntArray, kotlin.LongArray, kotlin.BooleanArray, kotlin.FloatArray, kotlin.DoubleArray, kotlin.Array<kotlin.String>, kotlin.Array<kotlin.ByteArray>, kotlin.Array<kotlin.Array<kotlin.String>>, T, G, kotlin.String, k.Class.F, k.Class.G, k.Class.F.F)