diff --git a/analysis/analysis-api-fir/tests/org/jetbrains/kotlin/analysis/api/fir/FirLibrarySourceReferenceResolveTestGenerated.java b/analysis/analysis-api-fir/tests/org/jetbrains/kotlin/analysis/api/fir/FirLibrarySourceReferenceResolveTestGenerated.java index 5b5e025ebf5..c14c9fd9b96 100644 --- a/analysis/analysis-api-fir/tests/org/jetbrains/kotlin/analysis/api/fir/FirLibrarySourceReferenceResolveTestGenerated.java +++ b/analysis/analysis-api-fir/tests/org/jetbrains/kotlin/analysis/api/fir/FirLibrarySourceReferenceResolveTestGenerated.java @@ -286,6 +286,12 @@ public class FirLibrarySourceReferenceResolveTestGenerated extends AbstractRefer runTest("analysis/analysis-api/testData/referenceResolve/JavaReference.kt"); } + @Test + @TestMetadata("JavaStaticMethod.kt") + public void testJavaStaticMethod() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/JavaStaticMethod.kt"); + } + @Test @TestMetadata("KotlinPropertyAssignment.kt") public void testKotlinPropertyAssignment() throws Exception { diff --git a/analysis/analysis-api-fir/tests/org/jetbrains/kotlin/analysis/api/fir/FirSourceReferenceResolveTestGenerated.java b/analysis/analysis-api-fir/tests/org/jetbrains/kotlin/analysis/api/fir/FirSourceReferenceResolveTestGenerated.java index a5462183219..c686d79f4f4 100644 --- a/analysis/analysis-api-fir/tests/org/jetbrains/kotlin/analysis/api/fir/FirSourceReferenceResolveTestGenerated.java +++ b/analysis/analysis-api-fir/tests/org/jetbrains/kotlin/analysis/api/fir/FirSourceReferenceResolveTestGenerated.java @@ -286,6 +286,12 @@ public class FirSourceReferenceResolveTestGenerated extends AbstractReferenceRes runTest("analysis/analysis-api/testData/referenceResolve/JavaReference.kt"); } + @Test + @TestMetadata("JavaStaticMethod.kt") + public void testJavaStaticMethod() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/JavaStaticMethod.kt"); + } + @Test @TestMetadata("KotlinPropertyAssignment.kt") public void testKotlinPropertyAssignment() throws Exception { diff --git a/analysis/analysis-api/testData/referenceResolve/JavaStaticMethod.kt b/analysis/analysis-api/testData/referenceResolve/JavaStaticMethod.kt new file mode 100644 index 00000000000..8cfe9ae8490 --- /dev/null +++ b/analysis/analysis-api/testData/referenceResolve/JavaStaticMethod.kt @@ -0,0 +1,20 @@ +// FILE: pkg/Foo.java + +package pkg; + +public class Foo { + public static void bar() { + System.out.println("Foo.bar()"); + } +} + +// FILE: main.kt +import pkg.Foo + +fun box() { + // NB: if we put bar(), LPAR, value arguments, function call, containing function and file will be visited in order. + // Among them, only function call can be converted to [KtReference], and the corresponding form is [KtInvokeFunctionReference], + // whose resolution picks implicit invoke() only, hence failed. That is expected for reference resolution with both FE1.0 and FIR. + // In reality, i.e., in IDE, users will click the part of function call "name", which results in simple name reference instead. + Foo.bar() +} diff --git a/analysis/analysis-api/testData/referenceResolve/JavaStaticMethod.txt b/analysis/analysis-api/testData/referenceResolve/JavaStaticMethod.txt new file mode 100644 index 00000000000..14078627b9f --- /dev/null +++ b/analysis/analysis-api/testData/referenceResolve/JavaStaticMethod.txt @@ -0,0 +1,2 @@ +Resolved to: +0: (in pkg.Foo) open fun bar()