diff --git a/idea/src/org/jetbrains/jet/plugin/libraries/DecompiledDataFactory.java b/idea/src/org/jetbrains/jet/plugin/libraries/DecompiledDataFactory.java index 5bc9e0dd1af..025d76d2d56 100644 --- a/idea/src/org/jetbrains/jet/plugin/libraries/DecompiledDataFactory.java +++ b/idea/src/org/jetbrains/jet/plugin/libraries/DecompiledDataFactory.java @@ -181,6 +181,17 @@ public class DecompiledDataFactory { } 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); if (clsMember != null) { clsMembersToRanges.put(clsMember, new TextRange(startOffset, endOffset)); diff --git a/idea/testData/libraries/decompiled/AbstractClass.kt b/idea/testData/libraries/decompiled/AbstractClass.kt index 66f03239ca1..3ae99c17225 100644 --- a/idea/testData/libraries/decompiled/AbstractClass.kt +++ b/idea/testData/libraries/decompiled/AbstractClass.kt @@ -3,5 +3,5 @@ package testData.libraries -[public abstract class AbstractClass() { -}] \ No newline at end of file +[[public abstract class AbstractClass() { +}]] \ No newline at end of file diff --git a/idea/testData/libraries/decompiled/ClassWithAbstractAndOpenMembers.kt b/idea/testData/libraries/decompiled/ClassWithAbstractAndOpenMembers.kt index 656a5a995eb..675030e7e7b 100644 --- a/idea/testData/libraries/decompiled/ClassWithAbstractAndOpenMembers.kt +++ b/idea/testData/libraries/decompiled/ClassWithAbstractAndOpenMembers.kt @@ -3,7 +3,7 @@ package testData.libraries -[public abstract class ClassWithAbstractAndOpenMembers() { +[[public abstract class ClassWithAbstractAndOpenMembers() { [public abstract val abstractVal : jet.String] [public abstract var abstractVar : jet.String] @@ -19,4 +19,4 @@ package testData.libraries [public abstract fun abstractFun() : Unit] [public open fun openFun() : Unit { /* compiled code */ }] -}] +}]] diff --git a/idea/testData/libraries/decompiled/ClassWithConstructor.kt b/idea/testData/libraries/decompiled/ClassWithConstructor.kt index 03939308da2..71afa1ea8b9 100644 --- a/idea/testData/libraries/decompiled/ClassWithConstructor.kt +++ b/idea/testData/libraries/decompiled/ClassWithConstructor.kt @@ -3,6 +3,6 @@ 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 */ -}] +}]] diff --git a/idea/testData/libraries/decompiled/Color.kt b/idea/testData/libraries/decompiled/Color.kt index 5dc83f6c469..4611bf681c0 100644 --- a/idea/testData/libraries/decompiled/Color.kt +++ b/idea/testData/libraries/decompiled/Color.kt @@ -3,7 +3,7 @@ package testData.libraries -[public final enum class Color(rgb : jet.Int, p1 : jet.Int, p2 : jet.Int) : jet.Enum { +[[public final enum class Color(rgb : jet.Int, p1 : jet.Int, p2 : jet.Int) : jet.Enum { class object { [public final val BLUE : testData.libraries.Color] /* compiled code */ @@ -17,4 +17,4 @@ package testData.libraries } [internal final val rgb : jet.Int] /* compiled code */ -}] +}]] diff --git a/idea/testData/libraries/decompiled/SimpleClass.kt b/idea/testData/libraries/decompiled/SimpleClass.kt index b100d92c68e..38aa10ac2dd 100644 --- a/idea/testData/libraries/decompiled/SimpleClass.kt +++ b/idea/testData/libraries/decompiled/SimpleClass.kt @@ -3,5 +3,5 @@ package testData.libraries -[public final class SimpleClass() { -}] +[[public final class SimpleClass() { +}]] diff --git a/idea/testData/libraries/decompiled/SimpleTraitImpl.kt b/idea/testData/libraries/decompiled/SimpleTraitImpl.kt index 0c022f855eb..77e2f745d3a 100644 --- a/idea/testData/libraries/decompiled/SimpleTraitImpl.kt +++ b/idea/testData/libraries/decompiled/SimpleTraitImpl.kt @@ -3,5 +3,5 @@ package testData.libraries -[public final class SimpleTraitImpl() : testData.libraries.SimpleTrait { -}] +[[public final class SimpleTraitImpl() : testData.libraries.SimpleTrait { +}]] diff --git a/idea/testData/libraries/decompiled/WithInnerAndObject.kt b/idea/testData/libraries/decompiled/WithInnerAndObject.kt index 515a91bd6c6..c2793247c33 100644 --- a/idea/testData/libraries/decompiled/WithInnerAndObject.kt +++ b/idea/testData/libraries/decompiled/WithInnerAndObject.kt @@ -3,14 +3,14 @@ package testData.libraries -[public final class WithInnerAndObject() { +[[public final class WithInnerAndObject() { class object { [internal final fun foo() : Unit { /* compiled code */ }] } - [internal final class MyInner() { + [[internal final class MyInner() { [internal trait MyInnerInner { [internal abstract fun innerInnerMethod() : Unit] }] - }] -}] + }]] +}]] diff --git a/idea/testData/libraries/decompiled/WithTraitClassObject.kt b/idea/testData/libraries/decompiled/WithTraitClassObject.kt index ab87fe0b4b6..8338b476e77 100644 --- a/idea/testData/libraries/decompiled/WithTraitClassObject.kt +++ b/idea/testData/libraries/decompiled/WithTraitClassObject.kt @@ -3,7 +3,7 @@ package testData.libraries -[public final class WithTraitClassObject() { +[[public final class WithTraitClassObject() { class object : testData.libraries.SimpleTrait { } -}] +}]]