FE: add reproducer for KT-54004
This commit is contained in:
committed by
Space Team
parent
80c0c33670
commit
0940707fd4
+6
@@ -35766,6 +35766,12 @@ public class DiagnosisCompilerTestFE10TestdataTestGenerated extends AbstractDiag
|
|||||||
runTest("compiler/testData/diagnostics/testsWithStdLib/builderInference/typeVariableShouldNotBeFixed.kt");
|
runTest("compiler/testData/diagnostics/testsWithStdLib/builderInference/typeVariableShouldNotBeFixed.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("unsafeAssignment.kt")
|
||||||
|
public void testUnsafeAssignment() throws Exception {
|
||||||
|
runTest("compiler/testData/diagnostics/testsWithStdLib/builderInference/unsafeAssignment.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("useInferenceInformationFromExtension.kt")
|
@TestMetadata("useInferenceInformationFromExtension.kt")
|
||||||
public void testUseInferenceInformationFromExtension() throws Exception {
|
public void testUseInferenceInformationFromExtension() throws Exception {
|
||||||
|
|||||||
+6
@@ -35766,6 +35766,12 @@ public class FirOldFrontendDiagnosticsTestGenerated extends AbstractFirDiagnosti
|
|||||||
runTest("compiler/testData/diagnostics/testsWithStdLib/builderInference/typeVariableShouldNotBeFixed.kt");
|
runTest("compiler/testData/diagnostics/testsWithStdLib/builderInference/typeVariableShouldNotBeFixed.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("unsafeAssignment.kt")
|
||||||
|
public void testUnsafeAssignment() throws Exception {
|
||||||
|
runTest("compiler/testData/diagnostics/testsWithStdLib/builderInference/unsafeAssignment.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("useInferenceInformationFromExtension.kt")
|
@TestMetadata("useInferenceInformationFromExtension.kt")
|
||||||
public void testUseInferenceInformationFromExtension() throws Exception {
|
public void testUseInferenceInformationFromExtension() throws Exception {
|
||||||
|
|||||||
+6
@@ -35766,6 +35766,12 @@ public class FirOldFrontendDiagnosticsWithLightTreeTestGenerated extends Abstrac
|
|||||||
runTest("compiler/testData/diagnostics/testsWithStdLib/builderInference/typeVariableShouldNotBeFixed.kt");
|
runTest("compiler/testData/diagnostics/testsWithStdLib/builderInference/typeVariableShouldNotBeFixed.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("unsafeAssignment.kt")
|
||||||
|
public void testUnsafeAssignment() throws Exception {
|
||||||
|
runTest("compiler/testData/diagnostics/testsWithStdLib/builderInference/unsafeAssignment.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("useInferenceInformationFromExtension.kt")
|
@TestMetadata("useInferenceInformationFromExtension.kt")
|
||||||
public void testUseInferenceInformationFromExtension() throws Exception {
|
public void testUseInferenceInformationFromExtension() throws Exception {
|
||||||
|
|||||||
+20
@@ -0,0 +1,20 @@
|
|||||||
|
class Foo<T : Any> {
|
||||||
|
fun doSmthng(arg: T) {}
|
||||||
|
var a: T? = null
|
||||||
|
}
|
||||||
|
|
||||||
|
fun <T : Any> myBuilder(block: Foo<T>.() -> Unit) : Foo<T> = Foo<T>().apply(block)
|
||||||
|
|
||||||
|
fun main() {
|
||||||
|
<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>myBuilder<!> {
|
||||||
|
a = <!ASSIGNMENT_TYPE_MISMATCH!>"some string"<!>
|
||||||
|
}
|
||||||
|
|
||||||
|
val x = 57
|
||||||
|
val value = myBuilder {
|
||||||
|
doSmthng("one ")
|
||||||
|
a = <!ASSIGNMENT_TYPE_MISMATCH!>57<!>
|
||||||
|
a = <!ASSIGNMENT_TYPE_MISMATCH!>x<!>
|
||||||
|
}
|
||||||
|
println(value.a?.count { it in 'l' .. 'q' })
|
||||||
|
}
|
||||||
+20
@@ -0,0 +1,20 @@
|
|||||||
|
class Foo<T : Any> {
|
||||||
|
fun doSmthng(arg: T) {}
|
||||||
|
var a: T? = null
|
||||||
|
}
|
||||||
|
|
||||||
|
fun <T : Any> myBuilder(block: Foo<T>.() -> Unit) : Foo<T> = Foo<T>().apply(block)
|
||||||
|
|
||||||
|
fun main() {
|
||||||
|
<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>myBuilder<!> {
|
||||||
|
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>a<!> = "some string"
|
||||||
|
}
|
||||||
|
|
||||||
|
val x = 57
|
||||||
|
val value = myBuilder {
|
||||||
|
doSmthng("one ")
|
||||||
|
a = 57
|
||||||
|
a = x
|
||||||
|
}
|
||||||
|
println(value.a?.count { it in 'l' .. 'q' })
|
||||||
|
}
|
||||||
+13
@@ -0,0 +1,13 @@
|
|||||||
|
package
|
||||||
|
|
||||||
|
public fun main(): kotlin.Unit
|
||||||
|
public fun </*0*/ T : kotlin.Any> myBuilder(/*0*/ block: Foo<T>.() -> kotlin.Unit): Foo<T>
|
||||||
|
|
||||||
|
public final class Foo</*0*/ T : kotlin.Any> {
|
||||||
|
public constructor Foo</*0*/ T : kotlin.Any>()
|
||||||
|
public final var a: T?
|
||||||
|
public final fun doSmthng(/*0*/ arg: T): kotlin.Unit
|
||||||
|
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
@@ -35856,6 +35856,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest {
|
|||||||
runTest("compiler/testData/diagnostics/testsWithStdLib/builderInference/typeVariableShouldNotBeFixed.kt");
|
runTest("compiler/testData/diagnostics/testsWithStdLib/builderInference/typeVariableShouldNotBeFixed.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("unsafeAssignment.kt")
|
||||||
|
public void testUnsafeAssignment() throws Exception {
|
||||||
|
runTest("compiler/testData/diagnostics/testsWithStdLib/builderInference/unsafeAssignment.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("useInferenceInformationFromExtension.kt")
|
@TestMetadata("useInferenceInformationFromExtension.kt")
|
||||||
public void testUseInferenceInformationFromExtension() throws Exception {
|
public void testUseInferenceInformationFromExtension() throws Exception {
|
||||||
|
|||||||
Reference in New Issue
Block a user