diff --git a/idea/idea-analysis/src/org/jetbrains/jet/plugin/decompiler/navigation/DecompiledNavigationUtils.java b/idea/idea-analysis/src/org/jetbrains/jet/plugin/decompiler/navigation/DecompiledNavigationUtils.java index d2b2dc54fdf..405951a201c 100644 --- a/idea/idea-analysis/src/org/jetbrains/jet/plugin/decompiler/navigation/DecompiledNavigationUtils.java +++ b/idea/idea-analysis/src/org/jetbrains/jet/plugin/decompiler/navigation/DecompiledNavigationUtils.java @@ -66,14 +66,8 @@ public final class DecompiledNavigationUtils { if (!(psiFile instanceof JetClsFile)) { return null; } - JetDeclaration jetDeclaration = ((JetClsFile) psiFile).getDeclarationForDescriptor(effectiveReferencedDescriptor); - if (jetDeclaration != null) { - return jetDeclaration; - } - else { - LOG.warn("Could not find an element to navigate to for descriptor " + getFqName(effectiveReferencedDescriptor)); - } - return null; + + return ((JetClsFile) psiFile).getDeclarationForDescriptor(effectiveReferencedDescriptor); } //TODO: should be done via some generic mechanism diff --git a/idea/testData/resolve/referenceInLib/inLibrarySource/funParameter.kt b/idea/testData/resolve/referenceInLib/inLibrarySource/funParameter.kt new file mode 100644 index 00000000000..d399141a89a --- /dev/null +++ b/idea/testData/resolve/referenceInLib/inLibrarySource/funParameter.kt @@ -0,0 +1,7 @@ +package inlibrary.test + +public class FunParameter { + fun test(p: Int) { + val a = p + } +} \ No newline at end of file diff --git a/idea/testData/resolve/referenceInLib/inLibrarySource/localFun.kt b/idea/testData/resolve/referenceInLib/inLibrarySource/localFun.kt new file mode 100644 index 00000000000..7adeb2af111 --- /dev/null +++ b/idea/testData/resolve/referenceInLib/inLibrarySource/localFun.kt @@ -0,0 +1,9 @@ +package inlibrary.test + +public fun topLevel(): Int { + fun local(): Int { + return 1 + } + + return local() +} \ No newline at end of file diff --git a/idea/testData/resolve/referenceInLib/toFunParameter.kt b/idea/testData/resolve/referenceInLib/toFunParameter.kt new file mode 100644 index 00000000000..f4f33bd78ac --- /dev/null +++ b/idea/testData/resolve/referenceInLib/toFunParameter.kt @@ -0,0 +1,8 @@ +import inlibrary.test.* + +val a: FunParameter? = null + +// CONTEXT: val a = p +// WITH_LIBRARY: /resolve/referenceInLib/inLibrarySource + +// REF: p \ No newline at end of file diff --git a/idea/testData/resolve/referenceInLib/toLocalFun.kt b/idea/testData/resolve/referenceInLib/toLocalFun.kt new file mode 100644 index 00000000000..95854d827ba --- /dev/null +++ b/idea/testData/resolve/referenceInLib/toLocalFun.kt @@ -0,0 +1,8 @@ +import inlibrary.test.* + +val tl = topLevel() + +// CONTEXT: return local() +// WITH_LIBRARY: /resolve/referenceInLib/inLibrarySource + +// REF: .local() \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/resolve/ReferenceResolveInLibrarySourcesTestGenerated.java b/idea/tests/org/jetbrains/jet/resolve/ReferenceResolveInLibrarySourcesTestGenerated.java index 79331dfd3e0..5971d902766 100644 --- a/idea/tests/org/jetbrains/jet/resolve/ReferenceResolveInLibrarySourcesTestGenerated.java +++ b/idea/tests/org/jetbrains/jet/resolve/ReferenceResolveInLibrarySourcesTestGenerated.java @@ -47,4 +47,16 @@ public class ReferenceResolveInLibrarySourcesTestGenerated extends AbstractRefer String fileName = JetTestUtils.navigationMetadata("idea/testData/resolve/referenceInLib/inLibrarySource.kt"); doTest(fileName); } + + @TestMetadata("toFunParameter.kt") + public void testToFunParameter() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/resolve/referenceInLib/toFunParameter.kt"); + doTest(fileName); + } + + @TestMetadata("toLocalFun.kt") + public void testToLocalFun() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/resolve/referenceInLib/toLocalFun.kt"); + doTest(fileName); + } }