Navigation: Fix navigation to library sources for Kotlin constructors
This commit is contained in:
+11
-1
@@ -340,7 +340,7 @@ public class JetSourceNavigationHelper {
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static JetNamedDeclaration getSourceFunction(@NotNull JetNamedFunction decompiledFunction) {
|
||||
public static JetNamedDeclaration getSourceFunction(@NotNull JetFunction decompiledFunction) {
|
||||
return getSourcePropertyOrFunction(decompiledFunction);
|
||||
}
|
||||
|
||||
@@ -452,6 +452,16 @@ public class JetSourceNavigationHelper {
|
||||
if (sourceParameters.size() != parameters.size()) return null;
|
||||
return sourceParameters.get(index);
|
||||
}
|
||||
|
||||
@Override
|
||||
public JetDeclaration visitPrimaryConstructor(@NotNull JetPrimaryConstructor constructor, Void data) {
|
||||
return getSourceFunction(constructor);
|
||||
}
|
||||
|
||||
@Override
|
||||
public JetDeclaration visitSecondaryConstructor(@NotNull JetSecondaryConstructor constructor, Void data) {
|
||||
return getSourceFunction(constructor);
|
||||
}
|
||||
}
|
||||
|
||||
private static class LibrarySourcesScope extends GlobalSearchScope {
|
||||
|
||||
@@ -4,5 +4,7 @@
|
||||
package testData.libraries
|
||||
|
||||
[[public final class ClassWithConstructor public constructor(a: kotlin.String, b: kotlin.Any) {
|
||||
[public constructor(a: kotlin.String) { /* compiled code */ }]
|
||||
|
||||
[internal final val a: kotlin.String /* compiled code */]
|
||||
}]]
|
||||
|
||||
+3
-1
@@ -61,7 +61,9 @@ public abstract class ClassWithAbstractAndOpenMembers {
|
||||
}
|
||||
}
|
||||
|
||||
public class ClassWithConstructor(val a: String, b: Any)
|
||||
public class ClassWithConstructor(val a: String, b: Any) {
|
||||
constructor(a: String): this(a, a)
|
||||
}
|
||||
|
||||
public fun main(args : Array<String>) {
|
||||
}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import testData.libraries.*
|
||||
|
||||
val x: ClassWithConstructor = ClassWithConstructor("abc", 239)
|
||||
val xx: ClassWithConstructor = ClassWithConstructor("abc")
|
||||
|
||||
// main.kt
|
||||
//public class <1><2>ClassWithConstructor(val a: String, b: Any)
|
||||
//public class <1><3>ClassWithConstructor<2>(val a: String, b: Any) {
|
||||
// <4>constructor(a: String): this(a, a)
|
||||
|
||||
@@ -17,6 +17,6 @@ fun foo() {
|
||||
// return this
|
||||
//}
|
||||
//
|
||||
//public class <2>Pair<A, B>(val first: A, val second: B)
|
||||
//public class Pair<A, B><2>(val first: A, val second: B)
|
||||
//
|
||||
//public val <T> Pair<T, T>.<3>exProp : String
|
||||
Reference in New Issue
Block a user