diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForSourceDeclaration.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForSourceDeclaration.kt index 2c2f0d84793..f29adac5bb9 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForSourceDeclaration.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForSourceDeclaration.kt @@ -362,8 +362,13 @@ abstract class KtLightClassForSourceDeclaration(protected val classOrObject: KtC return InvalidLightClassDataHolder } - return classOrObject.containingKtFile.script?.let { KtLightClassForScript.getLightClassCachedValue(it).value } - ?: getLightClassCachedValue(classOrObject).value + val containingScript = classOrObject.containingKtFile.script + return when { + !classOrObject.isLocal && containingScript != null -> + KtLightClassForScript.getLightClassCachedValue(containingScript).value + else -> + getLightClassCachedValue(classOrObject).value + } } private fun getLightClassCachedValue(classOrObject: KtClassOrObject): CachedValue { diff --git a/idea/testData/findUsages/kotlin/script/anonymousObject.0.kts b/idea/testData/findUsages/kotlin/script/anonymousObject.0.kts new file mode 100644 index 00000000000..64983590751 --- /dev/null +++ b/idea/testData/findUsages/kotlin/script/anonymousObject.0.kts @@ -0,0 +1,5 @@ +// PSI_ELEMENT: org.jetbrains.kotlin.psi.KtObjectDeclaration +// OPTIONS: usages +object: Any() { + +} \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/script/anonymousObject.results.txt b/idea/testData/findUsages/kotlin/script/anonymousObject.results.txt new file mode 100644 index 00000000000..8b137891791 --- /dev/null +++ b/idea/testData/findUsages/kotlin/script/anonymousObject.results.txt @@ -0,0 +1 @@ + diff --git a/idea/tests/org/jetbrains/kotlin/findUsages/FindUsagesTestGenerated.java b/idea/tests/org/jetbrains/kotlin/findUsages/FindUsagesTestGenerated.java index 8a01ea9ebf8..cfb9c726d80 100644 --- a/idea/tests/org/jetbrains/kotlin/findUsages/FindUsagesTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/findUsages/FindUsagesTestGenerated.java @@ -1379,6 +1379,11 @@ public class FindUsagesTestGenerated extends AbstractFindUsagesTest { KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/findUsages/kotlin/script"), Pattern.compile("^(.+)\\.0\\.(kt|kts)$"), TargetBackend.ANY, true); } + @TestMetadata("anonymousObject.0.kts") + public void testAnonymousObject() throws Exception { + runTest("idea/testData/findUsages/kotlin/script/anonymousObject.0.kts"); + } + @TestMetadata("dummy.0.kts") public void testDummy() throws Exception { runTest("idea/testData/findUsages/kotlin/script/dummy.0.kts");