Navigation: Fix navigation to library sources for Kotlin constructors
This commit is contained in:
+11
-1
@@ -340,7 +340,7 @@ public class JetSourceNavigationHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public static JetNamedDeclaration getSourceFunction(@NotNull JetNamedFunction decompiledFunction) {
|
public static JetNamedDeclaration getSourceFunction(@NotNull JetFunction decompiledFunction) {
|
||||||
return getSourcePropertyOrFunction(decompiledFunction);
|
return getSourcePropertyOrFunction(decompiledFunction);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -452,6 +452,16 @@ public class JetSourceNavigationHelper {
|
|||||||
if (sourceParameters.size() != parameters.size()) return null;
|
if (sourceParameters.size() != parameters.size()) return null;
|
||||||
return sourceParameters.get(index);
|
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 {
|
private static class LibrarySourcesScope extends GlobalSearchScope {
|
||||||
|
|||||||
@@ -4,5 +4,7 @@
|
|||||||
package testData.libraries
|
package testData.libraries
|
||||||
|
|
||||||
[[public final class ClassWithConstructor public constructor(a: kotlin.String, b: kotlin.Any) {
|
[[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 */]
|
[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>) {
|
public fun main(args : Array<String>) {
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
import testData.libraries.*
|
import testData.libraries.*
|
||||||
|
|
||||||
val x: ClassWithConstructor = ClassWithConstructor("abc", 239)
|
val x: ClassWithConstructor = ClassWithConstructor("abc", 239)
|
||||||
|
val xx: ClassWithConstructor = ClassWithConstructor("abc")
|
||||||
|
|
||||||
// main.kt
|
// 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
|
// 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
|
//public val <T> Pair<T, T>.<3>exProp : String
|
||||||
Reference in New Issue
Block a user