Navigation to decompiled primary constructor.

#KT-3168 in progress
This commit is contained in:
Evgeny Gerashchenko
2012-12-18 16:45:31 +04:00
parent 4c64ea58d5
commit 9906bbef4e
9 changed files with 29 additions and 18 deletions
@@ -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 */
}] }]]
+2 -2
View File
@@ -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 {
} }
}] }]]