[LL FIR, Java] fix resolve contract violation from java symbol provider from supertypes

To create a smart psi type pointer, IJ Platform uses resolve
We cannot use resolve from JavaSymbolProvider,
as it may lead to resolve contract violation

^KT-59240 Fixed
This commit is contained in:
Dmitrii Gridin
2023-06-12 13:41:58 +02:00
committed by Space Team
parent 67d933185a
commit 6992a707dc
14 changed files with 172 additions and 1 deletions
@@ -0,0 +1,11 @@
FILE: useSite.kt
public final fun foo(): R|kotlin/Int| {
^foo Int(4)
}
FILE: KotlinInterface.kt
public abstract interface KotlinInterface : R|kotlin/Any| {
public abstract var selectedOptions: R|kotlin/Int|
public get(): R|kotlin/Int|
public set(value: R|kotlin/Int|): R|kotlin/Unit|
}
@@ -0,0 +1,24 @@
// FILE: useSite.kt
import InspectionProfileImpl.INIT_INSPECTIONS
fun foo(): Int = 4
// FILE: InspectionProfileImpl.java
import static Configuration.StaticConfigurationClass
public class InspectionProfileImpl extends StaticConfigurationClass {
public static boolean INIT_INSPECTIONS;
}
// FILE: Configuration.java
public class Configuration implements KotlinInterface {
public static class StaticConfigurationClass {
}
}
// FILE: KotlinInterface.kt
interface KotlinInterface {
var selectedOptions: Int
}
@@ -0,0 +1,11 @@
FILE: useSite.kt
public final fun foo(): R|kotlin/Int| {
^foo Int(4)
}
FILE: KotlinInterface.kt
public abstract interface KotlinInterface : R|kotlin/Any| {
public abstract var selectedOptions: R|kotlin/Int|
public get(): R|kotlin/Int|
public set(value: R|kotlin/Int|): R|kotlin/Unit|
}
@@ -0,0 +1,28 @@
// FILE: useSite.kt
import InspectionProfileImpl.INIT_INSPECTIONS
fun foo(): Int = 4
// FILE: InspectionProfileImpl.java
import static Configuration.StaticConfigurationClass
public class InspectionProfileImpl extends InspectionProfile<StaticConfigurationClass> {
public static boolean INIT_INSPECTIONS;
}
// FILE: InspectionProfile.java
public class InspectionProfile <T> {
}
// FILE: Configuration.java
public class Configuration implements KotlinInterface {
public static class StaticConfigurationClass {
}
}
// FILE: KotlinInterface.kt
interface KotlinInterface {
var selectedOptions: Int
}