From af963ea2440d368aa084752ff7d1eb5847ad953d Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Thu, 2 Oct 2014 16:43:58 +0400 Subject: [PATCH] Fix being unable to find declaration for substituted callable from library #KT-5900 Fixed #KT-5901 Fixed --- .../org/jetbrains/jet/plugin/libraries/JetClsFile.kt | 2 +- .../overrideImplement/withLib/genericSubstituted.kt | 7 +++++++ .../withLib/genericSubstituted.kt.after | 10 ++++++++++ .../withLib/genericSubstitutedSrc/dependency.kt | 7 +++++++ .../codeInsight/OverrideImplementWithLibTest.java | 4 ++++ 5 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 idea/testData/codeInsight/overrideImplement/withLib/genericSubstituted.kt create mode 100644 idea/testData/codeInsight/overrideImplement/withLib/genericSubstituted.kt.after create mode 100644 idea/testData/codeInsight/overrideImplement/withLib/genericSubstitutedSrc/dependency.kt diff --git a/idea/idea-analysis/src/org/jetbrains/jet/plugin/libraries/JetClsFile.kt b/idea/idea-analysis/src/org/jetbrains/jet/plugin/libraries/JetClsFile.kt index c9894b44332..e70a04b478a 100644 --- a/idea/idea-analysis/src/org/jetbrains/jet/plugin/libraries/JetClsFile.kt +++ b/idea/idea-analysis/src/org/jetbrains/jet/plugin/libraries/JetClsFile.kt @@ -33,7 +33,7 @@ public class JetClsFile(val provider: JetClassFileViewProvider) : ClsFileImpl(pr override fun getDecompiledPsiFile() = decompiledFile public fun getDeclarationForDescriptor(descriptor: DeclarationDescriptor): JetDeclaration? { - val key = descriptorToKey(descriptor) + val key = descriptorToKey(descriptor.getOriginal()) val range = provider.decompiledText.renderedDescriptorsToRange[key] if (range == null) { return null diff --git a/idea/testData/codeInsight/overrideImplement/withLib/genericSubstituted.kt b/idea/testData/codeInsight/overrideImplement/withLib/genericSubstituted.kt new file mode 100644 index 00000000000..9411cddb938 --- /dev/null +++ b/idea/testData/codeInsight/overrideImplement/withLib/genericSubstituted.kt @@ -0,0 +1,7 @@ +package test + +import dependency.D + +class C: D() { + +} \ No newline at end of file diff --git a/idea/testData/codeInsight/overrideImplement/withLib/genericSubstituted.kt.after b/idea/testData/codeInsight/overrideImplement/withLib/genericSubstituted.kt.after new file mode 100644 index 00000000000..186f0d45e33 --- /dev/null +++ b/idea/testData/codeInsight/overrideImplement/withLib/genericSubstituted.kt.after @@ -0,0 +1,10 @@ +package test + +import dependency.D + +class C: D() { + + override fun id(t: Int): Int { + return super.id(t) + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/overrideImplement/withLib/genericSubstitutedSrc/dependency.kt b/idea/testData/codeInsight/overrideImplement/withLib/genericSubstitutedSrc/dependency.kt new file mode 100644 index 00000000000..bd055a7d059 --- /dev/null +++ b/idea/testData/codeInsight/overrideImplement/withLib/genericSubstitutedSrc/dependency.kt @@ -0,0 +1,7 @@ +package dependency + +public open class D { + public open fun id(t: T): T { + return t + } +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/plugin/codeInsight/OverrideImplementWithLibTest.java b/idea/tests/org/jetbrains/jet/plugin/codeInsight/OverrideImplementWithLibTest.java index c4bc98f1ff0..68105372efd 100644 --- a/idea/tests/org/jetbrains/jet/plugin/codeInsight/OverrideImplementWithLibTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/codeInsight/OverrideImplementWithLibTest.java @@ -39,4 +39,8 @@ public final class OverrideImplementWithLibTest extends AbstractOverrideImplemen public void testFakeOverride() { doOverrideFileTest(); } + + public void testGenericSubstituted() { + doOverrideFileTest(); + } }