diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/KotlinLightMethodForDeclaration.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/KotlinLightMethodForDeclaration.kt index 06872c9c1b3..499ce559f4a 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/KotlinLightMethodForDeclaration.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/KotlinLightMethodForDeclaration.kt @@ -74,6 +74,15 @@ open public class KotlinLightMethodForDeclaration( override fun getParent(): PsiElement? = getContainingClass() + override fun accept(visitor: PsiElementVisitor) { + if (visitor is JavaElementVisitor) { + visitor.visitMethod(this) + } + else { + visitor.visitElement(this) + } + } + override fun setName(name: String): PsiElement? { (origin as PsiNamedElement).setName(name) return this diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/KotlinLightNoOriginElements.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/KotlinLightNoOriginElements.kt index 9773e0f86e5..555aa926475 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/KotlinLightNoOriginElements.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/KotlinLightNoOriginElements.kt @@ -25,6 +25,15 @@ public class KotlinNoOriginLightMethod(manager: PsiManager, method: PsiMethod, c LightMethod(manager, method, containingClass) { override fun toString() = "KotlinNoOriginLightMethod:${getName()}" + if (isConstructor()) " ctor" else "" + + override fun accept(visitor: PsiElementVisitor) { + if (visitor is JavaElementVisitor) { + visitor.visitMethod(this) + } + else { + visitor.visitElement(this) + } + } } public class KotlinNoOriginLightField(manager: PsiManager, field: PsiField, containingClass: PsiClass) : diff --git a/idea/testData/kotlinAndJavaChecker/EnumStaticImportInJava.java b/idea/testData/kotlinAndJavaChecker/EnumStaticImportInJava.java new file mode 100644 index 00000000000..9e31f9a10fa --- /dev/null +++ b/idea/testData/kotlinAndJavaChecker/EnumStaticImportInJava.java @@ -0,0 +1,9 @@ +package test; + +import static test.kotlin.KotlinEnum.ENTRY; + +public class EnumStaticImportInJava { + void other() { + ENTRY.foo(); + } +} diff --git a/idea/testData/kotlinAndJavaChecker/EnumStaticImportInJava.kt b/idea/testData/kotlinAndJavaChecker/EnumStaticImportInJava.kt new file mode 100644 index 00000000000..5dc5ba202ad --- /dev/null +++ b/idea/testData/kotlinAndJavaChecker/EnumStaticImportInJava.kt @@ -0,0 +1,7 @@ +package test.kotlin + +public enum class KotlinEnum { + ENTRY + + public fun foo(): String = "foo" +} \ No newline at end of file diff --git a/idea/testData/kotlinAndJavaChecker/EnumStaticImportInJava.txt b/idea/testData/kotlinAndJavaChecker/EnumStaticImportInJava.txt new file mode 100644 index 00000000000..667982be541 --- /dev/null +++ b/idea/testData/kotlinAndJavaChecker/EnumStaticImportInJava.txt @@ -0,0 +1 @@ +// TOOL: DataFlowInspection \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/checkers/KotlinAndJavaCheckerTest.java b/idea/tests/org/jetbrains/kotlin/checkers/KotlinAndJavaCheckerTest.java index 2ad48bb3427..65823ba375e 100644 --- a/idea/tests/org/jetbrains/kotlin/checkers/KotlinAndJavaCheckerTest.java +++ b/idea/tests/org/jetbrains/kotlin/checkers/KotlinAndJavaCheckerTest.java @@ -124,4 +124,8 @@ public class KotlinAndJavaCheckerTest extends KotlinDaemonAnalyzerTestCase { public void testEnumEntriesInSwitch() throws Exception { doTest(true, true, "EnumEntriesInSwitch.java", "EnumEntriesInSwitch.kt"); } + + public void testEnumStaticImportInJava() throws Exception { + doTest(true, true, "EnumStaticImportInJava.java", "EnumStaticImportInJava.kt"); + } }