diff --git a/compiler/psi/src/org/jetbrains/kotlin/psi/KtPsiUtil.java b/compiler/psi/src/org/jetbrains/kotlin/psi/KtPsiUtil.java index 598e402b332..e257d797700 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/psi/KtPsiUtil.java +++ b/compiler/psi/src/org/jetbrains/kotlin/psi/KtPsiUtil.java @@ -812,6 +812,12 @@ public class KtPsiUtil { else if (parent instanceof KtClassBody && !isMemberOfObjectExpression((KtCallableDeclaration) current)) { return (KtElement) parent; } + else if (parent instanceof KtBlockExpression) { + PsiElement grandParent = parent.getParent(); + if (grandParent instanceof KtScript) { + return (KtElement) parent; + } + } } if (current instanceof KtParameter) { return (KtElement) current; diff --git a/idea/testData/findUsages/kotlin/script/anonymousObjectAsInitializer.0.kts b/idea/testData/findUsages/kotlin/script/anonymousObjectAsInitializer.0.kts new file mode 100644 index 00000000000..bce680e98ba --- /dev/null +++ b/idea/testData/findUsages/kotlin/script/anonymousObjectAsInitializer.0.kts @@ -0,0 +1,5 @@ +// PSI_ELEMENT: org.jetbrains.kotlin.psi.KtObjectDeclaration +// OPTIONS: usages +val x = object: Any() { + +} \ No newline at end of file diff --git a/idea/testData/findUsages/kotlin/script/anonymousObjectAsInitializer.results.txt b/idea/testData/findUsages/kotlin/script/anonymousObjectAsInitializer.results.txt new file mode 100644 index 00000000000..8b137891791 --- /dev/null +++ b/idea/testData/findUsages/kotlin/script/anonymousObjectAsInitializer.results.txt @@ -0,0 +1 @@ + diff --git a/idea/testData/findUsages/kotlin/script/anonymousObjectInFun.0.kts b/idea/testData/findUsages/kotlin/script/anonymousObjectInFun.0.kts new file mode 100644 index 00000000000..12317e91cae --- /dev/null +++ b/idea/testData/findUsages/kotlin/script/anonymousObjectInFun.0.kts @@ -0,0 +1,5 @@ +// PSI_ELEMENT: org.jetbrains.kotlin.psi.KtObjectDeclaration +// OPTIONS: usages +fun foo() { + val x = object : Any() {} +} diff --git a/idea/testData/findUsages/kotlin/script/anonymousObjectInFun.results.txt b/idea/testData/findUsages/kotlin/script/anonymousObjectInFun.results.txt new file mode 100644 index 00000000000..8b137891791 --- /dev/null +++ b/idea/testData/findUsages/kotlin/script/anonymousObjectInFun.results.txt @@ -0,0 +1 @@ + diff --git a/idea/testData/findUsages/kotlin/script/localClass.0.kts b/idea/testData/findUsages/kotlin/script/localClass.0.kts new file mode 100644 index 00000000000..a93a65a8d90 --- /dev/null +++ b/idea/testData/findUsages/kotlin/script/localClass.0.kts @@ -0,0 +1,7 @@ +// PSI_ELEMENT: org.jetbrains.kotlin.psi.KtClass +// OPTIONS: usages, constructorUsages +fun foo() { + class Local + + val x = Local() +} diff --git a/idea/testData/findUsages/kotlin/script/localClass.results.txt b/idea/testData/findUsages/kotlin/script/localClass.results.txt new file mode 100644 index 00000000000..2cf27965851 --- /dev/null +++ b/idea/testData/findUsages/kotlin/script/localClass.results.txt @@ -0,0 +1 @@ +New instance creation 6 val x = Local() \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/findUsages/FindUsagesTestGenerated.java b/idea/tests/org/jetbrains/kotlin/findUsages/FindUsagesTestGenerated.java index cfb9c726d80..20da54094bf 100644 --- a/idea/tests/org/jetbrains/kotlin/findUsages/FindUsagesTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/findUsages/FindUsagesTestGenerated.java @@ -1384,10 +1384,25 @@ public class FindUsagesTestGenerated extends AbstractFindUsagesTest { runTest("idea/testData/findUsages/kotlin/script/anonymousObject.0.kts"); } + @TestMetadata("anonymousObjectAsInitializer.0.kts") + public void testAnonymousObjectAsInitializer() throws Exception { + runTest("idea/testData/findUsages/kotlin/script/anonymousObjectAsInitializer.0.kts"); + } + + @TestMetadata("anonymousObjectInFun.0.kts") + public void testAnonymousObjectInFun() throws Exception { + runTest("idea/testData/findUsages/kotlin/script/anonymousObjectInFun.0.kts"); + } + @TestMetadata("dummy.0.kts") public void testDummy() throws Exception { runTest("idea/testData/findUsages/kotlin/script/dummy.0.kts"); } + + @TestMetadata("localClass.0.kts") + public void testLocalClass() throws Exception { + runTest("idea/testData/findUsages/kotlin/script/localClass.0.kts"); + } } @TestMetadata("idea/testData/findUsages/kotlin/unresolvedAnnotation")