Fix accept() in light methods elements to avoid treating them as ClsElements
This commit is contained in:
+9
@@ -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
|
||||
|
||||
@@ -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) :
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
package test;
|
||||
|
||||
import static test.kotlin.KotlinEnum.ENTRY;
|
||||
|
||||
public class EnumStaticImportInJava {
|
||||
void other() {
|
||||
ENTRY.foo();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package test.kotlin
|
||||
|
||||
public enum class KotlinEnum {
|
||||
ENTRY
|
||||
|
||||
public fun foo(): String = "foo"
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
// TOOL: DataFlowInspection
|
||||
@@ -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");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user