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 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? {
|
override fun setName(name: String): PsiElement? {
|
||||||
(origin as PsiNamedElement).setName(name)
|
(origin as PsiNamedElement).setName(name)
|
||||||
return this
|
return this
|
||||||
|
|||||||
@@ -25,6 +25,15 @@ public class KotlinNoOriginLightMethod(manager: PsiManager, method: PsiMethod, c
|
|||||||
LightMethod(manager, method, containingClass) {
|
LightMethod(manager, method, containingClass) {
|
||||||
|
|
||||||
override fun toString() = "KotlinNoOriginLightMethod:${getName()}" + if (isConstructor()) " ctor" else ""
|
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) :
|
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 {
|
public void testEnumEntriesInSwitch() throws Exception {
|
||||||
doTest(true, true, "EnumEntriesInSwitch.java", "EnumEntriesInSwitch.kt");
|
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