K2: reproduce KT-65057
This commit is contained in:
committed by
Space Team
parent
0a07f16896
commit
c4d6554493
+6
@@ -19641,6 +19641,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia
|
|||||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/tests/inference/recursiveTypes"), Pattern.compile("^(.+)\\.(kt|kts)$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
|
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/tests/inference/recursiveTypes"), Pattern.compile("^(.+)\\.(kt|kts)$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("complexTypeUnwrapping.kt")
|
||||||
|
public void testComplexTypeUnwrapping() throws Exception {
|
||||||
|
runTest("compiler/testData/diagnostics/tests/inference/recursiveTypes/complexTypeUnwrapping.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("kt61717.kt")
|
@TestMetadata("kt61717.kt")
|
||||||
public void testKt61717() throws Exception {
|
public void testKt61717() throws Exception {
|
||||||
|
|||||||
+6
@@ -19641,6 +19641,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated
|
|||||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/tests/inference/recursiveTypes"), Pattern.compile("^(.+)\\.(kt|kts)$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
|
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/tests/inference/recursiveTypes"), Pattern.compile("^(.+)\\.(kt|kts)$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("complexTypeUnwrapping.kt")
|
||||||
|
public void testComplexTypeUnwrapping() throws Exception {
|
||||||
|
runTest("compiler/testData/diagnostics/tests/inference/recursiveTypes/complexTypeUnwrapping.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("kt61717.kt")
|
@TestMetadata("kt61717.kt")
|
||||||
public void testKt61717() throws Exception {
|
public void testKt61717() throws Exception {
|
||||||
|
|||||||
+6
@@ -19635,6 +19635,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir
|
|||||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/tests/inference/recursiveTypes"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true, "multiplatform");
|
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/tests/inference/recursiveTypes"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true, "multiplatform");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("complexTypeUnwrapping.kt")
|
||||||
|
public void testComplexTypeUnwrapping() throws Exception {
|
||||||
|
runTest("compiler/testData/diagnostics/tests/inference/recursiveTypes/complexTypeUnwrapping.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("kt61717.kt")
|
@TestMetadata("kt61717.kt")
|
||||||
public void testKt61717() throws Exception {
|
public void testKt61717() throws Exception {
|
||||||
|
|||||||
+6
@@ -19641,6 +19641,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia
|
|||||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/tests/inference/recursiveTypes"), Pattern.compile("^(.*)\\.kts?$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true, "multiplatform");
|
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/tests/inference/recursiveTypes"), Pattern.compile("^(.*)\\.kts?$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true, "multiplatform");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("complexTypeUnwrapping.kt")
|
||||||
|
public void testComplexTypeUnwrapping() throws Exception {
|
||||||
|
runTest("compiler/testData/diagnostics/tests/inference/recursiveTypes/complexTypeUnwrapping.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("kt61717.kt")
|
@TestMetadata("kt61717.kt")
|
||||||
public void testKt61717() throws Exception {
|
public void testKt61717() throws Exception {
|
||||||
|
|||||||
+29
@@ -0,0 +1,29 @@
|
|||||||
|
FILE: complexTypeUnwrapping.kt
|
||||||
|
public abstract class AbstractField<out F : R|AbstractField<F>|> : R|kotlin/Any| {
|
||||||
|
public constructor<out F : R|AbstractField<F>|>(): R|AbstractField<F>| {
|
||||||
|
super<R|kotlin/Any|>()
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
public abstract class AbstractElement<EE : R|AbstractElement<EE, EF>|, EF : R|AbstractField<EF>|> : R|kotlin/Any| {
|
||||||
|
public constructor<EE : R|AbstractElement<EE, EF>|, EF : R|AbstractField<EF>|>(): R|AbstractElement<EE, EF>| {
|
||||||
|
super<R|kotlin/Any|>()
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
public abstract interface ElementOrRef<RE : R|AbstractElement<RE, RF>|, RF : R|AbstractField<RF>|> : R|kotlin/Any| {
|
||||||
|
public abstract val element: R|RE|
|
||||||
|
public get(): R|RE|
|
||||||
|
|
||||||
|
}
|
||||||
|
public final fun foo(x: R|ElementOrRef<*, *>|): R|AbstractElement<out AbstractElement<out AbstractElement<out AbstractElement<out AbstractElement<out kotlin/Any?, out kotlin/Any?>, out AbstractField<kotlin/Any?>>, out AbstractField<AbstractField<kotlin/Any?>>>, out AbstractField<AbstractField<AbstractField<kotlin/Any?>>>>, out AbstractField<AbstractField<AbstractField<AbstractField<kotlin/Any?>>>>>| {
|
||||||
|
^foo R|<local>/x|.R|SubstitutionOverride</ElementOrRef.element: R|CapturedType(*)|>|
|
||||||
|
}
|
||||||
|
public abstract interface FieldOrRef<FF : R|AbstractField<FF>|> : R|kotlin/Any| {
|
||||||
|
public abstract val field: R|FF|
|
||||||
|
public get(): R|FF|
|
||||||
|
|
||||||
|
}
|
||||||
|
public final fun bar(y: R|FieldOrRef<*>|): R|AbstractField<AbstractField<AbstractField<AbstractField<AbstractField<kotlin/Any?>>>>>| {
|
||||||
|
^bar R|<local>/y|.R|SubstitutionOverride</FieldOrRef.field: R|CapturedType(*)|>|
|
||||||
|
}
|
||||||
+19
@@ -0,0 +1,19 @@
|
|||||||
|
// FIR_IDENTICAL
|
||||||
|
// ISSUE: KT-65057
|
||||||
|
// FIR_DUMP
|
||||||
|
|
||||||
|
abstract class AbstractField<out F : AbstractField<F>>
|
||||||
|
|
||||||
|
abstract class AbstractElement<EE : AbstractElement<EE, EF>, EF : AbstractField<EF>>
|
||||||
|
|
||||||
|
interface ElementOrRef<RE : AbstractElement<RE, RF>, RF : AbstractField<RF>> {
|
||||||
|
val element: RE
|
||||||
|
}
|
||||||
|
|
||||||
|
fun foo(x: ElementOrRef<*, *>) = x.element
|
||||||
|
|
||||||
|
interface FieldOrRef<FF : AbstractField<FF>> {
|
||||||
|
val field: FF
|
||||||
|
}
|
||||||
|
|
||||||
|
fun bar(y: FieldOrRef<*>) = y.field
|
||||||
+33
@@ -0,0 +1,33 @@
|
|||||||
|
package
|
||||||
|
|
||||||
|
public fun bar(/*0*/ y: FieldOrRef<*>): AbstractField<*>
|
||||||
|
public fun foo(/*0*/ x: ElementOrRef<*, *>): AbstractElement<*, *>
|
||||||
|
|
||||||
|
public abstract class AbstractElement</*0*/ EE : AbstractElement<EE, EF>, /*1*/ EF : AbstractField<EF>> {
|
||||||
|
public constructor AbstractElement</*0*/ EE : AbstractElement<EE, EF>, /*1*/ EF : AbstractField<EF>>()
|
||||||
|
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||||
|
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||||
|
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract class AbstractField</*0*/ out F : AbstractField<F>> {
|
||||||
|
public constructor AbstractField</*0*/ out F : AbstractField<F>>()
|
||||||
|
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||||
|
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||||
|
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface ElementOrRef</*0*/ RE : AbstractElement<RE, RF>, /*1*/ RF : AbstractField<RF>> {
|
||||||
|
public abstract val element: RE
|
||||||
|
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||||
|
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||||
|
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface FieldOrRef</*0*/ FF : AbstractField<FF>> {
|
||||||
|
public abstract val field: FF
|
||||||
|
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||||
|
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||||
|
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||||
|
}
|
||||||
|
|
||||||
Generated
+6
@@ -19641,6 +19641,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest {
|
|||||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/tests/inference/recursiveTypes"), Pattern.compile("^(.*)\\.kts?$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
|
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/tests/inference/recursiveTypes"), Pattern.compile("^(.*)\\.kts?$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("complexTypeUnwrapping.kt")
|
||||||
|
public void testComplexTypeUnwrapping() throws Exception {
|
||||||
|
runTest("compiler/testData/diagnostics/tests/inference/recursiveTypes/complexTypeUnwrapping.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("kt61717.kt")
|
@TestMetadata("kt61717.kt")
|
||||||
public void testKt61717() throws Exception {
|
public void testKt61717() throws Exception {
|
||||||
|
|||||||
Reference in New Issue
Block a user