Navigation to decompiled primary constructor.
#KT-3168 in progress
This commit is contained in:
@@ -181,6 +181,17 @@ public class DecompiledDataFactory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
builder.append("\n");
|
builder.append("\n");
|
||||||
|
saveClsMemberToRange(descriptor, startOffset, endOffset);
|
||||||
|
|
||||||
|
if (descriptor instanceof ClassDescriptor) {
|
||||||
|
ConstructorDescriptor primaryConstructor = ((ClassDescriptor) descriptor).getUnsubstitutedPrimaryConstructor();
|
||||||
|
if (primaryConstructor != null) {
|
||||||
|
saveClsMemberToRange(primaryConstructor, startOffset, endOffset);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void saveClsMemberToRange(DeclarationDescriptor descriptor, int startOffset, int endOffset) {
|
||||||
PsiElement clsMember = BindingContextUtils.descriptorToDeclaration(bindingContext, descriptor);
|
PsiElement clsMember = BindingContextUtils.descriptorToDeclaration(bindingContext, descriptor);
|
||||||
if (clsMember != null) {
|
if (clsMember != null) {
|
||||||
clsMembersToRanges.put(clsMember, new TextRange(startOffset, endOffset));
|
clsMembersToRanges.put(clsMember, new TextRange(startOffset, endOffset));
|
||||||
|
|||||||
@@ -3,5 +3,5 @@
|
|||||||
|
|
||||||
package testData.libraries
|
package testData.libraries
|
||||||
|
|
||||||
[public abstract class AbstractClass() {
|
[[public abstract class AbstractClass() {
|
||||||
}]
|
}]]
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
package testData.libraries
|
package testData.libraries
|
||||||
|
|
||||||
[public abstract class ClassWithAbstractAndOpenMembers() {
|
[[public abstract class ClassWithAbstractAndOpenMembers() {
|
||||||
[public abstract val abstractVal : jet.String]
|
[public abstract val abstractVal : jet.String]
|
||||||
|
|
||||||
[public abstract var abstractVar : jet.String]
|
[public abstract var abstractVar : jet.String]
|
||||||
@@ -19,4 +19,4 @@ package testData.libraries
|
|||||||
[public abstract fun abstractFun() : Unit]
|
[public abstract fun abstractFun() : Unit]
|
||||||
|
|
||||||
[public open fun openFun() : Unit { /* compiled code */ }]
|
[public open fun openFun() : Unit { /* compiled code */ }]
|
||||||
}]
|
}]]
|
||||||
|
|||||||
@@ -3,6 +3,6 @@
|
|||||||
|
|
||||||
package testData.libraries
|
package testData.libraries
|
||||||
|
|
||||||
[public final class ClassWithConstructor(a : jet.String, b : jet.Any) {
|
[[public final class ClassWithConstructor(a : jet.String, b : jet.Any) {
|
||||||
[internal final val a : jet.String] /* compiled code */
|
[internal final val a : jet.String] /* compiled code */
|
||||||
}]
|
}]]
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
package testData.libraries
|
package testData.libraries
|
||||||
|
|
||||||
[public final enum class Color(rgb : jet.Int, p1 : jet.Int, p2 : jet.Int) : jet.Enum<testData.libraries.Color> {
|
[[public final enum class Color(rgb : jet.Int, p1 : jet.Int, p2 : jet.Int) : jet.Enum<testData.libraries.Color> {
|
||||||
class object {
|
class object {
|
||||||
[public final val BLUE : testData.libraries.Color] /* compiled code */
|
[public final val BLUE : testData.libraries.Color] /* compiled code */
|
||||||
|
|
||||||
@@ -17,4 +17,4 @@ package testData.libraries
|
|||||||
}
|
}
|
||||||
|
|
||||||
[internal final val rgb : jet.Int] /* compiled code */
|
[internal final val rgb : jet.Int] /* compiled code */
|
||||||
}]
|
}]]
|
||||||
|
|||||||
@@ -3,5 +3,5 @@
|
|||||||
|
|
||||||
package testData.libraries
|
package testData.libraries
|
||||||
|
|
||||||
[public final class SimpleClass() {
|
[[public final class SimpleClass() {
|
||||||
}]
|
}]]
|
||||||
|
|||||||
@@ -3,5 +3,5 @@
|
|||||||
|
|
||||||
package testData.libraries
|
package testData.libraries
|
||||||
|
|
||||||
[public final class SimpleTraitImpl() : testData.libraries.SimpleTrait {
|
[[public final class SimpleTraitImpl() : testData.libraries.SimpleTrait {
|
||||||
}]
|
}]]
|
||||||
|
|||||||
@@ -3,14 +3,14 @@
|
|||||||
|
|
||||||
package testData.libraries
|
package testData.libraries
|
||||||
|
|
||||||
[public final class WithInnerAndObject() {
|
[[public final class WithInnerAndObject() {
|
||||||
class object {
|
class object {
|
||||||
[internal final fun foo() : Unit { /* compiled code */ }]
|
[internal final fun foo() : Unit { /* compiled code */ }]
|
||||||
}
|
}
|
||||||
|
|
||||||
[internal final class MyInner() {
|
[[internal final class MyInner() {
|
||||||
[internal trait MyInnerInner {
|
[internal trait MyInnerInner {
|
||||||
[internal abstract fun innerInnerMethod() : Unit]
|
[internal abstract fun innerInnerMethod() : Unit]
|
||||||
}]
|
}]
|
||||||
}]
|
}]]
|
||||||
}]
|
}]]
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
package testData.libraries
|
package testData.libraries
|
||||||
|
|
||||||
[public final class WithTraitClassObject() {
|
[[public final class WithTraitClassObject() {
|
||||||
class object : testData.libraries.SimpleTrait {
|
class object : testData.libraries.SimpleTrait {
|
||||||
}
|
}
|
||||||
}]
|
}]]
|
||||||
|
|||||||
Reference in New Issue
Block a user