diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java index 1e8ccfdb64e..39e8b3a49c2 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java @@ -17653,6 +17653,12 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT runTest("compiler/testData/codegen/box/inference/builderInference/commonSuperTypeNullable.kt"); } + @Test + @TestMetadata("constraintsBetweenTwoStubVariables.kt") + public void testConstraintsBetweenTwoStubVariables() throws Exception { + runTest("compiler/testData/codegen/box/inference/builderInference/constraintsBetweenTwoStubVariables.kt"); + } + @Test @TestMetadata("intersect.kt") public void testIntersect() throws Exception { @@ -17671,6 +17677,12 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT runTest("compiler/testData/codegen/box/inference/builderInference/kt42139.kt"); } + @Test + @TestMetadata("kt44241.kt") + public void testKt44241() throws Exception { + runTest("compiler/testData/codegen/box/inference/builderInference/kt44241.kt"); + } + @Test @TestMetadata("kt47052.kt") public void testKt47052() throws Exception { diff --git a/compiler/resolution.common/src/org/jetbrains/kotlin/resolve/calls/NewCommonSuperTypeCalculator.kt b/compiler/resolution.common/src/org/jetbrains/kotlin/resolve/calls/NewCommonSuperTypeCalculator.kt index 929f95112e1..07d8644b8e9 100644 --- a/compiler/resolution.common/src/org/jetbrains/kotlin/resolve/calls/NewCommonSuperTypeCalculator.kt +++ b/compiler/resolution.common/src/org/jetbrains/kotlin/resolve/calls/NewCommonSuperTypeCalculator.kt @@ -446,7 +446,9 @@ object NewCommonSuperTypeCalculator { } val equalToEachOtherType = arguments.firstOrNull { potentialSuperType -> - arguments.all { AbstractTypeChecker.equalTypes(this, it.getType(), potentialSuperType.getType()) } + arguments.all { + AbstractTypeChecker.equalTypes(this, it.getType(), potentialSuperType.getType(), stubTypesEqualToAnything = false) + } } return if (equalToEachOtherType == null) { diff --git a/compiler/testData/codegen/box/inference/builderInference/constraintsBetweenTwoStubVariables.kt b/compiler/testData/codegen/box/inference/builderInference/constraintsBetweenTwoStubVariables.kt new file mode 100644 index 00000000000..c1fa24bbb22 --- /dev/null +++ b/compiler/testData/codegen/box/inference/builderInference/constraintsBetweenTwoStubVariables.kt @@ -0,0 +1,25 @@ +// !LANGUAGE: +UnrestrictedBuilderInference +// WITH_RUNTIME + +import kotlin.experimental.ExperimentalTypeInference + +class Foo(val key: K11) { + fun emit1(key: K11) {} + fun get(): K11 = null as K11 + fun emit2(key: K22) {} +} + +@OptIn(ExperimentalTypeInference::class) +fun build(@kotlin.BuilderInference builder: Foo.() -> Unit) {} + +fun run(x: Int) { + build { + emit1(x) + emit2(get()) // We shouldn't report type mismatch, instead we should add constraint StubTypeVariable(K2) >: StubTypeVariable(K1), then infer K2 into Int among K1 + } +} + +fun box(): String { + run(1) + return "OK" +} \ No newline at end of file diff --git a/compiler/testData/codegen/box/inference/builderInference/intersect.kt b/compiler/testData/codegen/box/inference/builderInference/intersect.kt index c31e84ee621..1603e2e5083 100644 --- a/compiler/testData/codegen/box/inference/builderInference/intersect.kt +++ b/compiler/testData/codegen/box/inference/builderInference/intersect.kt @@ -1,7 +1,6 @@ // !LANGUAGE: +UnrestrictedBuilderInference // WITH_RUNTIME // TARGET_BACKEND: JVM -// IGNORE_BACKEND_FIR: JVM_IR // DONT_TARGET_EXACT_BACKEND: WASM // FILE: Test.java @@ -37,15 +36,6 @@ fun box(): String { intersect(getIn(), Test.foo(getIn())) intersect(Test.foo(getIn()), Test.foo(getIn())) intersect(Test.foo(getIn()), getIn()) - - build2 { - emit(1) - intersect(this@build.getIn(), getIn()) - intersect(getIn(), Test.foo(this@build.getIn())) - intersect(Test.foo(this@build.getIn()), Test.foo(getIn())) - intersect(Test.foo(getIn()), this@build.getIn()) - "" - } "" } return "OK" diff --git a/compiler/testData/codegen/box/inference/builderInference/kt44241.kt b/compiler/testData/codegen/box/inference/builderInference/kt44241.kt new file mode 100644 index 00000000000..5b48c446e69 --- /dev/null +++ b/compiler/testData/codegen/box/inference/builderInference/kt44241.kt @@ -0,0 +1,23 @@ +// !LANGUAGE: +UnrestrictedBuilderInference +// WITH_RUNTIME + +import kotlin.experimental.ExperimentalTypeInference +class A +class B {} +class Scope( + val key: K11, +) { + fun emit(key: K22) {} +} + +@OptIn(ExperimentalTypeInference::class) +fun B.scoped(@kotlin.BuilderInference binder: Scope.() -> Unit) {} + +fun run(x: B) { + x.scoped { emit(key) } +} + +fun box(): String { + run(B()) + return "OK" +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeContravariant.fir.kt b/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeContravariant.fir.kt index 43a51868894..1495c56ef5c 100644 --- a/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeContravariant.fir.kt +++ b/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeContravariant.fir.kt @@ -47,24 +47,24 @@ fun test() { build2 { emit(1) - select1(this@build.get(), getIn()) - select1(get(), Test.foo(this@build.getIn())) - select1(Test.foo(this@build.get()), Test.foo(getIn())) - select1(Test.foo(get()), this@build.getIn()) - select2(this@build.get(), getIn()) - select2(get(), Test.foo(this@build.getIn())) - select2(Test.foo(this@build.get()), Test.foo(getIn())) - select2(Test.foo(get()), this@build.getIn()) - select3(this@build.get(), getIn()) - select3(get(), Test.foo(this@build.getIn())) - select3(Test.foo(this@build.get()), Test.foo(getIn())) - select3(Test.foo(get()), this@build.getIn()) - select4(this@build.get(), getIn()) - select4(get(), Test.foo(this@build.getIn())) - select4(Test.foo(this@build.get()), Test.foo(getIn())) - select4(Test.foo(get()), this@build.getIn()) + select1(this@build.get(), getIn()) + select1(get(), Test.foo(this@build.getIn())) + select1(Test.foo(this@build.get()), Test.foo(getIn())) + select1(Test.foo(get()), this@build.getIn()) + select2(this@build.get(), getIn()) + select2(get(), Test.foo(this@build.getIn())) + select2(Test.foo(this@build.get()), Test.foo(getIn())) + select2(Test.foo(get()), this@build.getIn()) + select3(this@build.get(), getIn()) + select3(get(), Test.foo(this@build.getIn())) + select3(Test.foo(this@build.get()), Test.foo(getIn())) + select3(Test.foo(get()), this@build.getIn()) + select4(this@build.get(), getIn()) + select4(get(), Test.foo(this@build.getIn())) + select4(Test.foo(this@build.get()), Test.foo(getIn())) + select4(Test.foo(get()), this@build.getIn()) - select4(id(Test.foo(this@build.get())), getIn()) + select4(id(Test.foo(this@build.get())), getIn()) "" } "" diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeContravariant.kt b/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeContravariant.kt index d135aff227d..bb99cea4a01 100644 --- a/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeContravariant.kt +++ b/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeContravariant.kt @@ -47,24 +47,24 @@ fun test() { build2 { emit(1) - select1(this@build.get(), getIn()) - select1(get(), Test.foo(this@build.getIn())) - select1(Test.foo(this@build.get()), Test.foo(getIn())) - select1(Test.foo(get()), this@build.getIn()) - select2(this@build.get(), getIn()) - select2(get(), Test.foo(this@build.getIn())) - select2(Test.foo(this@build.get()), Test.foo(getIn())) - select2(Test.foo(get()), this@build.getIn()) - select3(this@build.get(), getIn()) - select3(get(), Test.foo(this@build.getIn())) - select3(Test.foo(this@build.get()), Test.foo(getIn())) - select3(Test.foo(get()), this@build.getIn()) - select4(this@build.get(), getIn()) - select4(get(), Test.foo(this@build.getIn())) - select4(Test.foo(this@build.get()), Test.foo(getIn())) - select4(Test.foo(get()), this@build.getIn()) + select1(this@build.get(), ; In")!>getIn()) + select1(get(), ; In!")!>Test.foo(this@build.getIn())) + select1(Test.foo(this@build.get()), ; In!")!>Test.foo(getIn())) + select1(Test.foo(get()), ; In")!>this@build.getIn()) + select2(this@build.get(), ; In")!>getIn()) + select2(get(), ; In!")!>Test.foo(this@build.getIn())) + select2(Test.foo(this@build.get()), ; In!")!>Test.foo(getIn())) + select2(Test.foo(get()), ; In")!>this@build.getIn()) + select3(this@build.get(), ; In")!>getIn()) + select3(get(), ; In!")!>Test.foo(this@build.getIn())) + select3(Test.foo(this@build.get()), ; In!")!>Test.foo(getIn())) + select3(Test.foo(get()), ; In")!>this@build.getIn()) + select4(this@build.get(), ; In")!>getIn()) + select4(get(), ; In!")!>Test.foo(this@build.getIn())) + select4(Test.foo(this@build.get()), ; In!")!>Test.foo(getIn())) + select4(Test.foo(get()), ; In")!>this@build.getIn()) - select4(id(Test.foo(this@build.get())), getIn()) + select4(id(Test.foo(this@build.get())), ; In")!>getIn()) "" } "" diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeInvariant.fir.kt b/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeInvariant.fir.kt index 7dc3671eb5b..82aa4230b4b 100644 --- a/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeInvariant.fir.kt +++ b/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeInvariant.fir.kt @@ -47,16 +47,16 @@ fun test() { build2 { emit(1) - select1(this@build.get(), getInv()) - select1(get(), Test.foo(this@build.getInv())) - select1(Test.foo(this@build.get()), Test.foo(getInv())) - select1(Test.foo(get()), this@build.getInv()) - select4(this@build.get(), getInv()) - select4(get(), Test.foo(this@build.getInv())) - select4(Test.foo(this@build.get()), Test.foo(getInv())) - select4(Test.foo(get()), this@build.getInv()) + select1(this@build.get(), getInv()) + select1(get(), Test.foo(this@build.getInv())) + select1(Test.foo(this@build.get()), Test.foo(getInv())) + select1(Test.foo(get()), this@build.getInv()) + select4(this@build.get(), getInv()) + select4(get(), Test.foo(this@build.getInv())) + select4(Test.foo(this@build.get()), Test.foo(getInv())) + select4(Test.foo(get()), this@build.getInv()) - select4(id(Test.foo(this@build.get())), getInv()) + select4(id(Test.foo(this@build.get())), getInv()) "" } "" @@ -78,14 +78,14 @@ fun test() { build2 { emit(1) - select2(this@build.get(), getInv()) - select2(get(), Test.foo(this@build.getInv())) - select2(Test.foo(this@build.get()), Test.foo(getInv())) - select2(Test.foo(get()), this@build.getInv()) - select3(this@build.get(), getInv()) - select3(get(), Test.foo(this@build.getInv())) - select3(Test.foo(this@build.get()), Test.foo(getInv())) - select3(Test.foo(get()), this@build.getInv()) + select2(this@build.get(), getInv()) // TODO + select2(get(), Test.foo(this@build.getInv())) + select2(Test.foo(this@build.get()), Test.foo(getInv())) // TODO + select2(Test.foo(get()), this@build.getInv()) + select3(this@build.get(), getInv()) // TODO + select3(get(), Test.foo(this@build.getInv())) + select3(Test.foo(this@build.get()), Test.foo(getInv())) // TODO + select3(Test.foo(get()), this@build.getInv()) "" } "" diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeInvariant.kt b/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeInvariant.kt index 45834f1081d..07d2980d68d 100644 --- a/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeInvariant.kt +++ b/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeInvariant.kt @@ -47,16 +47,16 @@ fun test() { build2 { emit(1) - select1(this@build.get(), getInv()) - select1(get(), Test.foo(this@build.getInv())) - select1(Test.foo(this@build.get()), Test.foo(getInv())) - select1(Test.foo(get()), this@build.getInv()) - select4(this@build.get(), getInv()) - select4(get(), Test.foo(this@build.getInv())) - select4(Test.foo(this@build.get()), Test.foo(getInv())) - select4(Test.foo(get()), this@build.getInv()) + select1(this@build.get(), getInv()) + select1(get(), Test.foo(this@build.getInv())) + select1(Test.foo(this@build.get()), Test.foo(getInv())) + select1(Test.foo(get()), this@build.getInv()) + select4(this@build.get(), getInv()) + select4(get(), Test.foo(this@build.getInv())) + select4(Test.foo(this@build.get()), Test.foo(getInv())) + select4(Test.foo(get()), this@build.getInv()) - select4(id(Test.foo(this@build.get())), getInv()) + select4(id(Test.foo(this@build.get())), getInv()) "" } "" @@ -78,14 +78,14 @@ fun test() { build2 { emit(1) - select2(this@build.get(), getInv()) - select2(get(), Test.foo(this@build.getInv())) - select2(Test.foo(this@build.get()), Test.foo(getInv())) - select2(Test.foo(get()), this@build.getInv()) - select3(this@build.get(), getInv()) + select2(this@build.get(), getInv()) // TODO + select2(get(), ; Inv!")!>Test.foo(this@build.getInv())) + select2(Test.foo(this@build.get()), Test.foo(getInv())) // TODO + select2(Test.foo(get()), ; Inv")!>this@build.getInv()) + select3(this@build.get(), getInv()) // TODO select3(get(), Test.foo(this@build.getInv())) - select3(Test.foo(this@build.get()), Test.foo(getInv())) - select3(Test.foo(get()), this@build.getInv()) + select3(Test.foo(this@build.get()), Test.foo(getInv())) // TODO + select3(Test.foo(get()), ; Inv")!>this@build.getInv()) "" } "" diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/intersect.kt b/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/intersect.kt index bd0e277df10..ef58760e653 100644 --- a/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/intersect.kt +++ b/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/intersect.kt @@ -38,10 +38,10 @@ fun test() { build2 { emit(1) - intersect(this@build.getIn(), getIn()) - intersect(getIn(), Test.foo(this@build.getIn())) - intersect(Test.foo(this@build.getIn()), Test.foo(getIn())) - intersect(Test.foo(getIn()), this@build.getIn()) + intersect(this@build.getIn(), getIn()) + intersect(getIn(), Test.foo(this@build.getIn())) + intersect(Test.foo(this@build.getIn()), Test.foo(getIn())) + intersect(Test.foo(getIn()), this@build.getIn()) "" } "" diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java index a6bac5b3953..4ce738cd9e8 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java @@ -17623,6 +17623,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/inference/builderInference/commonSuperTypeNullable.kt"); } + @Test + @TestMetadata("constraintsBetweenTwoStubVariables.kt") + public void testConstraintsBetweenTwoStubVariables() throws Exception { + runTest("compiler/testData/codegen/box/inference/builderInference/constraintsBetweenTwoStubVariables.kt"); + } + @Test @TestMetadata("intersect.kt") public void testIntersect() throws Exception { @@ -17641,6 +17647,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/inference/builderInference/kt42139.kt"); } + @Test + @TestMetadata("kt44241.kt") + public void testKt44241() throws Exception { + runTest("compiler/testData/codegen/box/inference/builderInference/kt44241.kt"); + } + @Test @TestMetadata("kt47052.kt") public void testKt47052() throws Exception { diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java index 7c7b6090a6c..18f0411c992 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java @@ -17653,6 +17653,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/inference/builderInference/commonSuperTypeNullable.kt"); } + @Test + @TestMetadata("constraintsBetweenTwoStubVariables.kt") + public void testConstraintsBetweenTwoStubVariables() throws Exception { + runTest("compiler/testData/codegen/box/inference/builderInference/constraintsBetweenTwoStubVariables.kt"); + } + @Test @TestMetadata("intersect.kt") public void testIntersect() throws Exception { @@ -17671,6 +17677,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/inference/builderInference/kt42139.kt"); } + @Test + @TestMetadata("kt44241.kt") + public void testKt44241() throws Exception { + runTest("compiler/testData/codegen/box/inference/builderInference/kt44241.kt"); + } + @Test @TestMetadata("kt47052.kt") public void testKt47052() throws Exception { diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index 6de09d6504e..7337fd6669b 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -14596,6 +14596,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/inference/builderInference/commonSuperTypeNullable.kt"); } + @TestMetadata("constraintsBetweenTwoStubVariables.kt") + public void testConstraintsBetweenTwoStubVariables() throws Exception { + runTest("compiler/testData/codegen/box/inference/builderInference/constraintsBetweenTwoStubVariables.kt"); + } + @TestMetadata("intersect.kt") public void testIntersect() throws Exception { runTest("compiler/testData/codegen/box/inference/builderInference/intersect.kt"); @@ -14611,6 +14616,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/inference/builderInference/kt42139.kt"); } + @TestMetadata("kt44241.kt") + public void testKt44241() throws Exception { + runTest("compiler/testData/codegen/box/inference/builderInference/kt44241.kt"); + } + @TestMetadata("kt47052.kt") public void testKt47052() throws Exception { runTest("compiler/testData/codegen/box/inference/builderInference/kt47052.kt"); diff --git a/core/compiler.common/src/org/jetbrains/kotlin/types/AbstractTypeChecker.kt b/core/compiler.common/src/org/jetbrains/kotlin/types/AbstractTypeChecker.kt index 5eb6d5b1b15..7033b0c0c05 100644 --- a/core/compiler.common/src/org/jetbrains/kotlin/types/AbstractTypeChecker.kt +++ b/core/compiler.common/src/org/jetbrains/kotlin/types/AbstractTypeChecker.kt @@ -490,7 +490,7 @@ object AbstractTypeChecker { } if (subType.isStubTypeForBuilderInference() && superType.isStubTypeForBuilderInference()) - return isStubTypeSubtypeOfAnother(subType, superType) + return isStubTypeSubtypeOfAnother(subType, superType) || context.isStubTypeEqualsToAnything if (subType.isStubType() || superType.isStubType()) return context.isStubTypeEqualsToAnything diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java index be88d10405f..58a5fdd0e27 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java @@ -12760,6 +12760,11 @@ public class IrJsCodegenBoxES6TestGenerated extends AbstractIrJsCodegenBoxES6Tes runTest("compiler/testData/codegen/box/inference/builderInference/capturedTypes.kt"); } + @TestMetadata("constraintsBetweenTwoStubVariables.kt") + public void testConstraintsBetweenTwoStubVariables() throws Exception { + runTest("compiler/testData/codegen/box/inference/builderInference/constraintsBetweenTwoStubVariables.kt"); + } + @TestMetadata("kt41164.kt") public void testKt41164() throws Exception { runTest("compiler/testData/codegen/box/inference/builderInference/kt41164.kt"); @@ -12770,6 +12775,11 @@ public class IrJsCodegenBoxES6TestGenerated extends AbstractIrJsCodegenBoxES6Tes runTest("compiler/testData/codegen/box/inference/builderInference/kt42139.kt"); } + @TestMetadata("kt44241.kt") + public void testKt44241() throws Exception { + runTest("compiler/testData/codegen/box/inference/builderInference/kt44241.kt"); + } + @TestMetadata("kt47052.kt") public void testKt47052() throws Exception { runTest("compiler/testData/codegen/box/inference/builderInference/kt47052.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java index 942df5c52ab..a63f5bd3318 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java @@ -12166,6 +12166,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { runTest("compiler/testData/codegen/box/inference/builderInference/capturedTypes.kt"); } + @TestMetadata("constraintsBetweenTwoStubVariables.kt") + public void testConstraintsBetweenTwoStubVariables() throws Exception { + runTest("compiler/testData/codegen/box/inference/builderInference/constraintsBetweenTwoStubVariables.kt"); + } + @TestMetadata("kt41164.kt") public void testKt41164() throws Exception { runTest("compiler/testData/codegen/box/inference/builderInference/kt41164.kt"); @@ -12176,6 +12181,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { runTest("compiler/testData/codegen/box/inference/builderInference/kt42139.kt"); } + @TestMetadata("kt44241.kt") + public void testKt44241() throws Exception { + runTest("compiler/testData/codegen/box/inference/builderInference/kt44241.kt"); + } + @TestMetadata("kt47052.kt") public void testKt47052() throws Exception { runTest("compiler/testData/codegen/box/inference/builderInference/kt47052.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java index 2625cd1becc..27bc87d8835 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java @@ -12231,6 +12231,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { runTest("compiler/testData/codegen/box/inference/builderInference/capturedTypes.kt"); } + @TestMetadata("constraintsBetweenTwoStubVariables.kt") + public void testConstraintsBetweenTwoStubVariables() throws Exception { + runTest("compiler/testData/codegen/box/inference/builderInference/constraintsBetweenTwoStubVariables.kt"); + } + @TestMetadata("kt41164.kt") public void testKt41164() throws Exception { runTest("compiler/testData/codegen/box/inference/builderInference/kt41164.kt"); @@ -12241,6 +12246,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { runTest("compiler/testData/codegen/box/inference/builderInference/kt42139.kt"); } + @TestMetadata("kt44241.kt") + public void testKt44241() throws Exception { + runTest("compiler/testData/codegen/box/inference/builderInference/kt44241.kt"); + } + @TestMetadata("kt47052.kt") public void testKt47052() throws Exception { runTest("compiler/testData/codegen/box/inference/builderInference/kt47052.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java index b7a4ccaa5a5..ccdedefbdc5 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java @@ -6516,6 +6516,16 @@ public class IrCodegenBoxWasmTestGenerated extends AbstractIrCodegenBoxWasmTest KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/inference/builderInference"), Pattern.compile("^([^_](.+))\\.kt$"), null, TargetBackend.WASM, true); } + @TestMetadata("constraintsBetweenTwoStubVariables.kt") + public void testConstraintsBetweenTwoStubVariables() throws Exception { + runTest("compiler/testData/codegen/box/inference/builderInference/constraintsBetweenTwoStubVariables.kt"); + } + + @TestMetadata("kt44241.kt") + public void testKt44241() throws Exception { + runTest("compiler/testData/codegen/box/inference/builderInference/kt44241.kt"); + } + @TestMetadata("substituteStubTypeIntolambdaParameterDescriptor.kt") public void testSubstituteStubTypeIntolambdaParameterDescriptor() throws Exception { runTest("compiler/testData/codegen/box/inference/builderInference/substituteStubTypeIntolambdaParameterDescriptor.kt");