diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/descriptors/JavaMethodDescriptor.java b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/descriptors/JavaMethodDescriptor.java index f6bd6ee7333..eb1929aa019 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/descriptors/JavaMethodDescriptor.java +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/descriptors/JavaMethodDescriptor.java @@ -102,7 +102,7 @@ public class JavaMethodDescriptor extends SimpleFunctionDescriptorImpl implement getAnnotations(), getName(), kind, - SourceElement.NO_SOURCE + original != null ? original.getSource() : SourceElement.NO_SOURCE ); result.setParameterNamesStatus(hasStableParameterNames(), hasSynthesizedParameterNames()); return result; diff --git a/idea/testData/resolve/references/ReferenceToSam.Data.java b/idea/testData/resolve/references/ReferenceToSam.Data.java new file mode 100644 index 00000000000..212f2cf0ca8 --- /dev/null +++ b/idea/testData/resolve/references/ReferenceToSam.Data.java @@ -0,0 +1,11 @@ + + +public class JavaTest { + public interface SAMInterface { + void onEvent(int event); + } + + public static class SomeJavaClass { + public void setListener(SAMInterface listener) {} + } +} diff --git a/idea/testData/resolve/references/ReferenceToSam.kt b/idea/testData/resolve/references/ReferenceToSam.kt new file mode 100644 index 00000000000..b70bbf853b6 --- /dev/null +++ b/idea/testData/resolve/references/ReferenceToSam.kt @@ -0,0 +1,6 @@ +fun some() { + val jClass = JavaTest.SomeJavaClass() + jClass.setListener {} +} + +// REF: (in JavaTest.SomeJavaClass).setListener(SAMInterface) diff --git a/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceResolveTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceResolveTestGenerated.java index b13875e0924..bac26bca246 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceResolveTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceResolveTestGenerated.java @@ -317,6 +317,12 @@ public class ReferenceResolveTestGenerated extends AbstractReferenceResolveTest doTest(fileName); } + @TestMetadata("ReferenceToSam.kt") + public void testReferenceToSam() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/resolve/references/ReferenceToSam.kt"); + doTest(fileName); + } + @TestMetadata("ResolveClass.kt") public void testResolveClass() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/testData/resolve/references/ResolveClass.kt");