[FIR] skip implicit call to enum constructor if super type call exists

otherwise, reference to the super type would be resolved even when it's not
e.g. for interface constructor
^ KTIJ-24437
This commit is contained in:
Anna Kozlova
2023-01-25 23:01:30 +01:00
committed by teamcity
parent 07d369998c
commit e5b96561e0
12 changed files with 52 additions and 5 deletions
@@ -370,6 +370,12 @@ public class Fe10IdeNormalAnalysisSourceModuleResolveCallTestGenerated extends A
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/enumAsAnnotationValue.kt");
}
@Test
@TestMetadata("enumSuperTypeInterface.kt")
public void testEnumSuperTypeInterface() throws Exception {
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/enumSuperTypeInterface.kt");
}
@Test
@TestMetadata("eqEqCall_fromAny.kt")
public void testEqEqCall_fromAny() throws Exception {
@@ -370,6 +370,12 @@ public class FirIdeNormalAnalysisSourceModuleResolveCallTestGenerated extends Ab
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/enumAsAnnotationValue.kt");
}
@Test
@TestMetadata("enumSuperTypeInterface.kt")
public void testEnumSuperTypeInterface() throws Exception {
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/enumSuperTypeInterface.kt");
}
@Test
@TestMetadata("eqEqCall_fromAny.kt")
public void testEqEqCall_fromAny() throws Exception {
@@ -370,6 +370,12 @@ public class FirStandaloneNormalAnalysisSourceModuleResolveCallTestGenerated ext
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/enumAsAnnotationValue.kt");
}
@Test
@TestMetadata("enumSuperTypeInterface.kt")
public void testEnumSuperTypeInterface() throws Exception {
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/enumSuperTypeInterface.kt");
}
@Test
@TestMetadata("eqEqCall_fromAny.kt")
public void testEqEqCall_fromAny() throws Exception {
@@ -0,0 +1,3 @@
KtErrorCallInfo:
candidateCalls = []
diagnostic = ERROR<NO_CONSTRUCTOR: This class does not have a constructor>
@@ -0,0 +1,4 @@
enum class E : <expr>I()</expr>, I1{}
interface I {}
interface I1 {}
@@ -0,0 +1,3 @@
KtErrorCallInfo:
candidateCalls = []
diagnostic = ERROR<UNRESOLVED_REFERENCE: Unresolved reference: <init>>