K2: Adjust test data after PCLA implementation [red-to-green]
^KT-59791 In Progress
This commit is contained in:
committed by
Space Team
parent
8459465177
commit
b9019d3de1
Vendored
-42
@@ -1,42 +0,0 @@
|
|||||||
KtSuccessCallInfo:
|
|
||||||
call = KtSimpleFunctionCall:
|
|
||||||
isImplicitInvoke = false
|
|
||||||
partiallyAppliedSymbol = KtPartiallyAppliedSymbol:
|
|
||||||
dispatchReceiver = KtImplicitReceiverValue:
|
|
||||||
symbol = KtReceiverParameterSymbol:
|
|
||||||
annotationsList: []
|
|
||||||
origin: SOURCE
|
|
||||||
owningCallableSymbol: KtAnonymousFunctionSymbol(<local>/<no name provided>)
|
|
||||||
type: KtUsualClassType:
|
|
||||||
annotationsList: []
|
|
||||||
ownTypeArguments: [
|
|
||||||
KtUsualClassType:
|
|
||||||
annotationsList: []
|
|
||||||
ownTypeArguments: []
|
|
||||||
type: kotlin/String
|
|
||||||
]
|
|
||||||
type: test/Target<kotlin/String>
|
|
||||||
type = test.Target<kotlin.String>
|
|
||||||
extensionReceiver = null
|
|
||||||
signature = KtFunctionLikeSignature:
|
|
||||||
receiverType = null
|
|
||||||
returnType = kotlin.Unit
|
|
||||||
symbol = test/Target.add(<dispatch receiver>: test.Target<T>, t: T): kotlin.Unit
|
|
||||||
valueParameters = [
|
|
||||||
KtVariableLikeSignature:
|
|
||||||
name = t
|
|
||||||
receiverType = null
|
|
||||||
returnType = kotlin.String
|
|
||||||
symbol = t: T
|
|
||||||
callableIdIfNonLocal = null
|
|
||||||
]
|
|
||||||
callableIdIfNonLocal = test/Target.add
|
|
||||||
typeArgumentsMapping = {}
|
|
||||||
argumentMapping = {
|
|
||||||
s -> (KtVariableLikeSignature:
|
|
||||||
name = t
|
|
||||||
receiverType = null
|
|
||||||
returnType = kotlin.String
|
|
||||||
symbol = t: T
|
|
||||||
callableIdIfNonLocal = null)
|
|
||||||
}
|
|
||||||
+2
-2
@@ -26,7 +26,7 @@ KtSuccessCallInfo:
|
|||||||
KtVariableLikeSignature:
|
KtVariableLikeSignature:
|
||||||
name = t
|
name = t
|
||||||
receiverType = null
|
receiverType = null
|
||||||
returnType = T
|
returnType = kotlin.String
|
||||||
symbol = t: T
|
symbol = t: T
|
||||||
callableIdIfNonLocal = null
|
callableIdIfNonLocal = null
|
||||||
]
|
]
|
||||||
@@ -36,7 +36,7 @@ KtSuccessCallInfo:
|
|||||||
s -> (KtVariableLikeSignature:
|
s -> (KtVariableLikeSignature:
|
||||||
name = t
|
name = t
|
||||||
receiverType = null
|
receiverType = null
|
||||||
returnType = T
|
returnType = kotlin.String
|
||||||
symbol = t: T
|
symbol = t: T
|
||||||
callableIdIfNonLocal = null)
|
callableIdIfNonLocal = null)
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+2
-2
@@ -1,12 +1,12 @@
|
|||||||
FILE: ifInBuildMap.kt
|
FILE: ifInBuildMap.kt
|
||||||
public final fun main(): R|kotlin/Unit| {
|
public final fun main(): R|kotlin/Unit| {
|
||||||
R|kotlin/collections/buildMap<CS errors: kotlin/collections/buildMap>#|<R|kotlin/String|, R|kotlin/String|>(<L> = buildMap@fun R|kotlin/collections/MutableMap<kotlin/String, kotlin/String>|.<anonymous>(): R|kotlin/Unit| <inline=Inline, kind=EXACTLY_ONCE> {
|
R|kotlin/collections/buildMap|<R|kotlin/String|, R|kotlin/String|>(<L> = buildMap@fun R|kotlin/collections/MutableMap<kotlin/String, kotlin/String>|.<anonymous>(): R|kotlin/Unit| <inline=Inline, kind=EXACTLY_ONCE> {
|
||||||
when () {
|
when () {
|
||||||
Boolean(true) -> {
|
Boolean(true) -> {
|
||||||
R|kotlin/io/println|(String(test))
|
R|kotlin/io/println|(String(test))
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
this@R|special/anonymous|.R|SubstitutionOverride<kotlin/collections/MutableMap.put: R|Stub (chain inference): TypeVariable(V)?|>|(String(foo), String(bar))
|
this@R|special/anonymous|.R|SubstitutionOverride<kotlin/collections/MutableMap.put: R|kotlin/String?|>|(String(foo), String(bar))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -2,11 +2,11 @@
|
|||||||
// ISSUE: KT-51143
|
// ISSUE: KT-51143
|
||||||
|
|
||||||
fun main() {
|
fun main() {
|
||||||
<!NEW_INFERENCE_ERROR!>buildMap {
|
buildMap {
|
||||||
if (true) {
|
if (true) {
|
||||||
println("test")
|
println("test")
|
||||||
} else {
|
} else {
|
||||||
put("foo", "bar")
|
put("foo", "bar")
|
||||||
}
|
}
|
||||||
}<!>
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-4
@@ -1,4 +1 @@
|
|||||||
compiler/testData/cli/jvm/builderInferenceErrors.kt:6:9: error: overload resolution ambiguity between candidates: [@InlineOnly() fun println(message: Any?): Unit, @InlineOnly() fun println(message: Boolean): Unit, @InlineOnly() fun println(message: Byte): Unit, ...]
|
OK
|
||||||
println(secondParameter)
|
|
||||||
^
|
|
||||||
COMPILATION_ERROR
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
// ISSUE: KT-49160
|
// ISSUE: KT-49160
|
||||||
|
|
||||||
// IGNORE_LIGHT_ANALYSIS
|
// IGNORE_LIGHT_ANALYSIS
|
||||||
// IGNORE_BACKEND: ANY
|
// IGNORE_BACKEND_K1: ANY
|
||||||
// REASON: red code (see corresponding diagnostic test)
|
// REASON: red code (see corresponding diagnostic test)
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
// ISSUE: KT-49160
|
// ISSUE: KT-49160
|
||||||
|
|
||||||
// IGNORE_LIGHT_ANALYSIS
|
// IGNORE_LIGHT_ANALYSIS
|
||||||
// IGNORE_BACKEND: ANY
|
// IGNORE_BACKEND_K1: ANY
|
||||||
// REASON: red code (see corresponding diagnostic test)
|
// REASON: red code (see corresponding diagnostic test)
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
// ISSUE: KT-49160
|
// ISSUE: KT-49160
|
||||||
|
|
||||||
// IGNORE_LIGHT_ANALYSIS
|
// IGNORE_LIGHT_ANALYSIS
|
||||||
// IGNORE_BACKEND: ANY
|
// IGNORE_BACKEND_K1: ANY
|
||||||
// REASON: red code (see corresponding diagnostic test)
|
// REASON: red code (see corresponding diagnostic test)
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
// ISSUE: KT-49160
|
// ISSUE: KT-49160
|
||||||
|
|
||||||
// IGNORE_LIGHT_ANALYSIS
|
// IGNORE_LIGHT_ANALYSIS
|
||||||
// IGNORE_BACKEND: ANY
|
// IGNORE_BACKEND_K1: ANY
|
||||||
// REASON: red code (see corresponding diagnostic test)
|
// REASON: red code (see corresponding diagnostic test)
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
// ISSUE: KT-49160
|
// ISSUE: KT-49160
|
||||||
|
|
||||||
// IGNORE_LIGHT_ANALYSIS
|
// IGNORE_LIGHT_ANALYSIS
|
||||||
// IGNORE_BACKEND: ANY
|
// IGNORE_BACKEND_K1: ANY
|
||||||
// REASON: red code (see corresponding diagnostic test)
|
// REASON: red code (see corresponding diagnostic test)
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
// ISSUE: KT-50453
|
// ISSUE: KT-50453
|
||||||
|
|
||||||
// IGNORE_LIGHT_ANALYSIS
|
// IGNORE_LIGHT_ANALYSIS
|
||||||
// IGNORE_BACKEND: ANY
|
// IGNORE_BACKEND_K1: ANY
|
||||||
// REASON: red code (see corresponding diagnostic test)
|
// REASON: red code (see corresponding diagnostic test)
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
|
// IGNORE_BACKEND_K1: ANY
|
||||||
// ISSUE: KT-52838
|
// ISSUE: KT-52838
|
||||||
|
|
||||||
// IGNORE_LIGHT_ANALYSIS
|
// IGNORE_LIGHT_ANALYSIS
|
||||||
// IGNORE_BACKEND: ANY
|
// IGNORE_BACKEND_K2: WASM
|
||||||
// REASON: red code (see corresponding diagnostic test)
|
// REASON: That still doesn't work properly with PCLA, but accidentally don't fails for other tests but WASM
|
||||||
|
// (see KT-52838 for tracking and same-named diagnostic test)
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
build {
|
build {
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
MODULE main
|
||||||
|
CLASS Kt52838cKt$box$1.class
|
||||||
|
Property: class.signature
|
||||||
|
K1
|
||||||
|
Lkotlin/jvm/internal/Lambda;Lkotlin/jvm/functions/Function1<LBuildee<Ljava/lang/Object;>;Lkotlin/Unit;>;
|
||||||
|
K2
|
||||||
|
Lkotlin/jvm/internal/Lambda;Lkotlin/jvm/functions/Function1<LBuildee<Lkotlin/Unit;>;Lkotlin/Unit;>;
|
||||||
|
METHOD invoke(LBuildee;)V
|
||||||
|
Property: method.signature
|
||||||
|
K1
|
||||||
|
(LBuildee<+Ljava/lang/Object;>;)V
|
||||||
|
K2
|
||||||
|
(LBuildee<Lkotlin/Unit;>;)V
|
||||||
@@ -1,7 +1,9 @@
|
|||||||
// ISSUE: KT-52838
|
// ISSUE: KT-52838
|
||||||
|
// JVM_ABI_K1_K2_DIFF: KT-64738
|
||||||
|
|
||||||
// IGNORE_BACKEND_K2: ANY
|
// IGNORE_BACKEND_K2: WASM
|
||||||
// REASON: red code (see corresponding diagnostic test)
|
// REASON: That still doesn't work properly with PCLA, but accidentally don't fails for other tests but WASM
|
||||||
|
// (see KT-52838 for tracking and same-named diagnostic test)
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
build {
|
build {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
// ISSUE: KT-53639
|
// ISSUE: KT-53639
|
||||||
|
|
||||||
// IGNORE_LIGHT_ANALYSIS
|
// IGNORE_LIGHT_ANALYSIS
|
||||||
// IGNORE_BACKEND: ANY
|
// IGNORE_BACKEND_K1: ANY
|
||||||
// REASON: red code (see corresponding diagnostic test)
|
// REASON: red code (see corresponding diagnostic test)
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
// ISSUE: KT-54400
|
// ISSUE: KT-54400
|
||||||
|
|
||||||
// IGNORE_LIGHT_ANALYSIS
|
// IGNORE_LIGHT_ANALYSIS
|
||||||
// IGNORE_BACKEND: ANY
|
// IGNORE_BACKEND_K1: ANY
|
||||||
// REASON: red code (see corresponding diagnostic test)
|
// REASON: red code (see corresponding diagnostic test)
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
// ISSUE: KT-54400
|
// ISSUE: KT-54400
|
||||||
|
|
||||||
// IGNORE_LIGHT_ANALYSIS
|
// IGNORE_LIGHT_ANALYSIS
|
||||||
// IGNORE_BACKEND: ANY
|
// IGNORE_BACKEND_K1: ANY
|
||||||
// REASON: red code (see corresponding diagnostic test)
|
// REASON: red code (see corresponding diagnostic test)
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
// ISSUE: KT-54400
|
// ISSUE: KT-54400
|
||||||
|
|
||||||
// IGNORE_LIGHT_ANALYSIS
|
// IGNORE_LIGHT_ANALYSIS
|
||||||
// IGNORE_BACKEND: ANY
|
// IGNORE_BACKEND_K1: ANY
|
||||||
// REASON: red code (see corresponding diagnostic test)
|
// REASON: red code (see corresponding diagnostic test)
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
// ISSUE: KT-57707
|
// ISSUE: KT-57707
|
||||||
|
|
||||||
// IGNORE_LIGHT_ANALYSIS
|
// IGNORE_LIGHT_ANALYSIS
|
||||||
// IGNORE_BACKEND: ANY
|
// IGNORE_BACKEND_K1: ANY
|
||||||
// REASON: red code (see corresponding diagnostic test)
|
// REASON: red code (see corresponding diagnostic test)
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
|
|
||||||
// IGNORE_LIGHT_ANALYSIS
|
// IGNORE_LIGHT_ANALYSIS
|
||||||
// IGNORE_BACKEND: ANY
|
// IGNORE_BACKEND_K1: ANY
|
||||||
|
// TARGET_BACKEND: JVM
|
||||||
// REASON: red code (see corresponding diagnostic test)
|
// REASON: red code (see corresponding diagnostic test)
|
||||||
|
|
||||||
var result = ""
|
var result = ""
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
// ISSUE: KT-57834
|
// ISSUE: KT-57834
|
||||||
|
|
||||||
// IGNORE_LIGHT_ANALYSIS
|
// IGNORE_LIGHT_ANALYSIS
|
||||||
// IGNORE_BACKEND: ANY
|
// IGNORE_BACKEND_K1: ANY
|
||||||
// REASON: red code (see corresponding diagnostic test)
|
// REASON: red code (see corresponding diagnostic test)
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
|
|
||||||
// IGNORE_LIGHT_ANALYSIS
|
// IGNORE_LIGHT_ANALYSIS
|
||||||
// IGNORE_BACKEND: ANY
|
// IGNORE_BACKEND_K1: ANY
|
||||||
// REASON: red code (see corresponding diagnostic test)
|
// REASON: red code (see corresponding diagnostic test)
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
// ISSUE: KT-60291
|
// ISSUE: KT-60291
|
||||||
|
|
||||||
// IGNORE_LIGHT_ANALYSIS
|
// IGNORE_LIGHT_ANALYSIS
|
||||||
// IGNORE_BACKEND: ANY
|
// IGNORE_BACKEND_K1: ANY
|
||||||
// REASON: red code (see corresponding diagnostic test)
|
// REASON: red code (see corresponding diagnostic test)
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
// ISSUE: KT-60291
|
// ISSUE: KT-60291
|
||||||
|
|
||||||
// IGNORE_LIGHT_ANALYSIS
|
// IGNORE_LIGHT_ANALYSIS
|
||||||
// IGNORE_BACKEND: ANY
|
// IGNORE_BACKEND_K1: ANY
|
||||||
// REASON: red code (see corresponding diagnostic test)
|
// REASON: red code (see corresponding diagnostic test)
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
// ISSUE: KT-61310
|
// ISSUE: KT-61310
|
||||||
|
|
||||||
// IGNORE_LIGHT_ANALYSIS
|
// IGNORE_LIGHT_ANALYSIS
|
||||||
// IGNORE_BACKEND_K2: ANY
|
|
||||||
// REASON: red code (see corresponding diagnostic test)
|
// REASON: red code (see corresponding diagnostic test)
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
// ISSUE: KT-63733
|
// ISSUE: KT-63733
|
||||||
|
|
||||||
// IGNORE_LIGHT_ANALYSIS
|
// IGNORE_LIGHT_ANALYSIS
|
||||||
// IGNORE_BACKEND: ANY
|
// IGNORE_BACKEND_K1: ANY
|
||||||
// REASON: red code (see corresponding diagnostic test)
|
// REASON: red code (see corresponding diagnostic test)
|
||||||
|
|
||||||
fun BoundedBuildee<TargetType>.setBoundedTypeVariable(arg: DifferentType) {}
|
fun BoundedBuildee<TargetType>.setBoundedTypeVariable(arg: DifferentType) {}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
|
|
||||||
// IGNORE_LIGHT_ANALYSIS
|
// IGNORE_LIGHT_ANALYSIS
|
||||||
// IGNORE_BACKEND: ANY
|
// IGNORE_BACKEND_K1: ANY
|
||||||
// REASON: red code (see corresponding diagnostic test)
|
// REASON: red code (see corresponding diagnostic test)
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
// ISSUE: KT-63840
|
// ISSUE: KT-63840
|
||||||
|
|
||||||
// IGNORE_LIGHT_ANALYSIS
|
// IGNORE_LIGHT_ANALYSIS
|
||||||
// IGNORE_BACKEND: ANY
|
// IGNORE_BACKEND_K1: ANY
|
||||||
// REASON: red code (see corresponding diagnostic test)
|
// REASON: red code (see corresponding diagnostic test)
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
// ISSUE: KT-63840
|
// ISSUE: KT-63840
|
||||||
|
|
||||||
// IGNORE_LIGHT_ANALYSIS
|
// IGNORE_LIGHT_ANALYSIS
|
||||||
// IGNORE_BACKEND: ANY
|
// IGNORE_BACKEND_K1: ANY
|
||||||
// REASON: red code (see corresponding diagnostic test)
|
// REASON: red code (see corresponding diagnostic test)
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
|
|||||||
-2
@@ -1,7 +1,5 @@
|
|||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// IGNORE_BACKEND_K2: JVM_IR
|
|
||||||
// FIR status: KT-58742
|
|
||||||
|
|
||||||
class Out<out V>(val v: V)
|
class Out<out V>(val v: V)
|
||||||
class Box<R> {
|
class Box<R> {
|
||||||
|
|||||||
-2
@@ -1,7 +1,5 @@
|
|||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// IGNORE_BACKEND_K2: JVM_IR
|
|
||||||
// FIR status: KT-58741
|
|
||||||
|
|
||||||
fun foo() =
|
fun foo() =
|
||||||
buildBox {
|
buildBox {
|
||||||
|
|||||||
+2
-2
@@ -2,7 +2,7 @@
|
|||||||
// CHECK_TYPE_WITH_EXACT
|
// CHECK_TYPE_WITH_EXACT
|
||||||
|
|
||||||
fun test() {
|
fun test() {
|
||||||
val outerBuildee = <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>build<!> outerBuild@ {
|
val outerBuildee = build outerBuild@ {
|
||||||
class LocalClass {
|
class LocalClass {
|
||||||
fun localClassMember() {
|
fun localClassMember() {
|
||||||
val innerBuildee = build innerBuild@ {
|
val innerBuildee = build innerBuild@ {
|
||||||
@@ -17,7 +17,7 @@ fun test() {
|
|||||||
}
|
}
|
||||||
// exact type equality check — turns unexpected compile-time behavior into red code
|
// exact type equality check — turns unexpected compile-time behavior into red code
|
||||||
// considered to be non-user-reproducible code for the purposes of these tests
|
// considered to be non-user-reproducible code for the purposes of these tests
|
||||||
<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>checkExactType<!><<!CANNOT_INFER_PARAMETER_TYPE!>Buildee<TargetType><!>>(outerBuildee)
|
checkExactType<Buildee<TargetType>>(outerBuildee)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -2,7 +2,7 @@
|
|||||||
// CHECK_TYPE_WITH_EXACT
|
// CHECK_TYPE_WITH_EXACT
|
||||||
|
|
||||||
fun test() {
|
fun test() {
|
||||||
val outerBuildee = <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>build<!> outerBuild@ {
|
val outerBuildee = build outerBuild@ {
|
||||||
object {
|
object {
|
||||||
fun anonymousObjectMember() {
|
fun anonymousObjectMember() {
|
||||||
val innerBuildee = build innerBuild@ {
|
val innerBuildee = build innerBuild@ {
|
||||||
@@ -17,7 +17,7 @@ fun test() {
|
|||||||
}
|
}
|
||||||
// exact type equality check — turns unexpected compile-time behavior into red code
|
// exact type equality check — turns unexpected compile-time behavior into red code
|
||||||
// considered to be non-user-reproducible code for the purposes of these tests
|
// considered to be non-user-reproducible code for the purposes of these tests
|
||||||
<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>checkExactType<!><<!CANNOT_INFER_PARAMETER_TYPE!>Buildee<TargetType><!>>(outerBuildee)
|
checkExactType<Buildee<TargetType>>(outerBuildee)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -2,7 +2,7 @@
|
|||||||
// CHECK_TYPE_WITH_EXACT
|
// CHECK_TYPE_WITH_EXACT
|
||||||
|
|
||||||
fun test() {
|
fun test() {
|
||||||
val outerBuildee = <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>build<!> outerBuild@ {
|
val outerBuildee = build outerBuild@ {
|
||||||
fun localFunction() {
|
fun localFunction() {
|
||||||
val innerBuildee = build innerBuild@ {
|
val innerBuildee = build innerBuild@ {
|
||||||
this@outerBuild.setTypeVariable(TargetType())
|
this@outerBuild.setTypeVariable(TargetType())
|
||||||
@@ -15,7 +15,7 @@ fun test() {
|
|||||||
}
|
}
|
||||||
// exact type equality check — turns unexpected compile-time behavior into red code
|
// exact type equality check — turns unexpected compile-time behavior into red code
|
||||||
// considered to be non-user-reproducible code for the purposes of these tests
|
// considered to be non-user-reproducible code for the purposes of these tests
|
||||||
<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>checkExactType<!><<!CANNOT_INFER_PARAMETER_TYPE!>Buildee<TargetType><!>>(outerBuildee)
|
checkExactType<Buildee<TargetType>>(outerBuildee)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -2,7 +2,7 @@
|
|||||||
// CHECK_TYPE_WITH_EXACT
|
// CHECK_TYPE_WITH_EXACT
|
||||||
|
|
||||||
fun test() {
|
fun test() {
|
||||||
val outerBuildee = <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>build<!> outerBuild@ {
|
val outerBuildee = build outerBuild@ {
|
||||||
val innerBuildee = build innerBuild@ {
|
val innerBuildee = build innerBuild@ {
|
||||||
this@outerBuild.setTypeVariable(TargetType())
|
this@outerBuild.setTypeVariable(TargetType())
|
||||||
this@innerBuild.setTypeVariable(TargetType())
|
this@innerBuild.setTypeVariable(TargetType())
|
||||||
@@ -13,7 +13,7 @@ fun test() {
|
|||||||
}
|
}
|
||||||
// exact type equality check — turns unexpected compile-time behavior into red code
|
// exact type equality check — turns unexpected compile-time behavior into red code
|
||||||
// considered to be non-user-reproducible code for the purposes of these tests
|
// considered to be non-user-reproducible code for the purposes of these tests
|
||||||
<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>checkExactType<!><<!CANNOT_INFER_PARAMETER_TYPE!>Buildee<TargetType><!>>(outerBuildee)
|
checkExactType<Buildee<TargetType>>(outerBuildee)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+4
-4
@@ -2,8 +2,8 @@
|
|||||||
// CHECK_TYPE_WITH_EXACT
|
// CHECK_TYPE_WITH_EXACT
|
||||||
|
|
||||||
fun test() {
|
fun test() {
|
||||||
val outerBuildee = <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>build<!> outerBuild@ {
|
val outerBuildee = build outerBuild@ {
|
||||||
val middleBuildee = <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>build<!> middleBuild@ {
|
val middleBuildee = build middleBuild@ {
|
||||||
val innerBuildee = build innerBuild@ {
|
val innerBuildee = build innerBuild@ {
|
||||||
this@outerBuild.setTypeVariable(TargetType())
|
this@outerBuild.setTypeVariable(TargetType())
|
||||||
this@middleBuild.setTypeVariable(TargetType())
|
this@middleBuild.setTypeVariable(TargetType())
|
||||||
@@ -15,11 +15,11 @@ fun test() {
|
|||||||
}
|
}
|
||||||
// exact type equality check — turns unexpected compile-time behavior into red code
|
// exact type equality check — turns unexpected compile-time behavior into red code
|
||||||
// considered to be non-user-reproducible code for the purposes of these tests
|
// considered to be non-user-reproducible code for the purposes of these tests
|
||||||
<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>checkExactType<!><<!CANNOT_INFER_PARAMETER_TYPE!>Buildee<TargetType><!>>(middleBuildee)
|
checkExactType<Buildee<TargetType>>(middleBuildee)
|
||||||
}
|
}
|
||||||
// exact type equality check — turns unexpected compile-time behavior into red code
|
// exact type equality check — turns unexpected compile-time behavior into red code
|
||||||
// considered to be non-user-reproducible code for the purposes of these tests
|
// considered to be non-user-reproducible code for the purposes of these tests
|
||||||
<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>checkExactType<!><<!CANNOT_INFER_PARAMETER_TYPE!>Buildee<TargetType><!>>(outerBuildee)
|
checkExactType<Buildee<TargetType>>(outerBuildee)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
fun test() {
|
fun test() {
|
||||||
val buildee = build {
|
val buildee = build {
|
||||||
setTypeVariable(TargetType())
|
setTypeVariable(TargetType())
|
||||||
consume(<!ARGUMENT_TYPE_MISMATCH!>getTypeVariable()<!>)
|
consume(getTypeVariable())
|
||||||
}
|
}
|
||||||
// exact type equality check — turns unexpected compile-time behavior into red code
|
// exact type equality check — turns unexpected compile-time behavior into red code
|
||||||
// considered to be non-user-reproducible code for the purposes of these tests
|
// considered to be non-user-reproducible code for the purposes of these tests
|
||||||
|
|||||||
+2
-2
@@ -2,14 +2,14 @@
|
|||||||
// CHECK_TYPE_WITH_EXACT
|
// CHECK_TYPE_WITH_EXACT
|
||||||
|
|
||||||
fun test() {
|
fun test() {
|
||||||
val buildee = <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>build<!> {
|
val buildee = build {
|
||||||
this as DerivedBuildee<*>
|
this as DerivedBuildee<*>
|
||||||
getTypeVariable()
|
getTypeVariable()
|
||||||
getTypeVariable()
|
getTypeVariable()
|
||||||
}
|
}
|
||||||
// exact type equality check — turns unexpected compile-time behavior into red code
|
// exact type equality check — turns unexpected compile-time behavior into red code
|
||||||
// considered to be non-user-reproducible code for the purposes of these tests
|
// considered to be non-user-reproducible code for the purposes of these tests
|
||||||
<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>checkExactType<!><<!CANNOT_INFER_PARAMETER_TYPE!>Buildee<*><!>>(buildee)
|
checkExactType<Buildee<*>>(<!ARGUMENT_TYPE_MISMATCH!>buildee<!>)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,8 +3,8 @@
|
|||||||
|
|
||||||
fun test() {
|
fun test() {
|
||||||
val buildee = initializeAndBuild(
|
val buildee = initializeAndBuild(
|
||||||
{ build <!BUILDER_INFERENCE_MULTI_LAMBDA_RESTRICTION!>{ setTypeVariable(TargetType()) }<!> },
|
{ build { setTypeVariable(TargetType()) } },
|
||||||
<!BUILDER_INFERENCE_MULTI_LAMBDA_RESTRICTION!>{ placeholderExtensionInvokeOnBuildee() }<!>,
|
{ placeholderExtensionInvokeOnBuildee() },
|
||||||
)
|
)
|
||||||
// exact type equality check — turns unexpected compile-time behavior into red code
|
// exact type equality check — turns unexpected compile-time behavior into red code
|
||||||
// considered to be non-user-reproducible code for the purposes of these tests
|
// considered to be non-user-reproducible code for the purposes of these tests
|
||||||
|
|||||||
+2
-2
@@ -2,12 +2,12 @@
|
|||||||
// CHECK_TYPE_WITH_EXACT
|
// CHECK_TYPE_WITH_EXACT
|
||||||
|
|
||||||
fun test() {
|
fun test() {
|
||||||
val buildee = <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>build<!> {
|
val buildee = build {
|
||||||
typeVariableMutableProperty = ""
|
typeVariableMutableProperty = ""
|
||||||
}
|
}
|
||||||
// exact type equality check — turns unexpected compile-time behavior into red code
|
// exact type equality check — turns unexpected compile-time behavior into red code
|
||||||
// considered to be non-user-reproducible code for the purposes of these tests
|
// considered to be non-user-reproducible code for the purposes of these tests
|
||||||
<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>checkExactType<!><<!CANNOT_INFER_PARAMETER_TYPE!>Buildee<String><!>>(buildee)
|
checkExactType<Buildee<String>>(buildee)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -2,12 +2,12 @@
|
|||||||
// CHECK_TYPE_WITH_EXACT
|
// CHECK_TYPE_WITH_EXACT
|
||||||
|
|
||||||
fun test() {
|
fun test() {
|
||||||
val buildee = <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>build<!> {
|
val buildee = build {
|
||||||
typeVariableMutableProperty = 42
|
typeVariableMutableProperty = 42
|
||||||
}
|
}
|
||||||
// exact type equality check — turns unexpected compile-time behavior into red code
|
// exact type equality check — turns unexpected compile-time behavior into red code
|
||||||
// considered to be non-user-reproducible code for the purposes of these tests
|
// considered to be non-user-reproducible code for the purposes of these tests
|
||||||
<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>checkExactType<!><<!CANNOT_INFER_PARAMETER_TYPE!>Buildee<Int><!>>(buildee)
|
checkExactType<Buildee<Int>>(buildee)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -2,12 +2,12 @@
|
|||||||
// CHECK_TYPE_WITH_EXACT
|
// CHECK_TYPE_WITH_EXACT
|
||||||
|
|
||||||
fun test() {
|
fun test() {
|
||||||
val buildee = <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>build<!> {
|
val buildee = build {
|
||||||
typeVariableMutableProperty = {}
|
typeVariableMutableProperty = {}
|
||||||
}
|
}
|
||||||
// exact type equality check — turns unexpected compile-time behavior into red code
|
// exact type equality check — turns unexpected compile-time behavior into red code
|
||||||
// considered to be non-user-reproducible code for the purposes of these tests
|
// considered to be non-user-reproducible code for the purposes of these tests
|
||||||
<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>checkExactType<!><<!CANNOT_INFER_PARAMETER_TYPE!>Buildee<() -> Unit><!>>(buildee)
|
checkExactType<Buildee<() -> Unit>>(buildee)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ fun test() {
|
|||||||
}
|
}
|
||||||
// exact type equality check — turns unexpected compile-time behavior into red code
|
// exact type equality check — turns unexpected compile-time behavior into red code
|
||||||
// considered to be non-user-reproducible code for the purposes of these tests
|
// considered to be non-user-reproducible code for the purposes of these tests
|
||||||
checkExactType<Buildee<TargetType>>(<!ARGUMENT_TYPE_MISMATCH!>buildee<!>)
|
checkExactType<Buildee<TargetType>>(buildee)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -11,13 +11,13 @@ fun <ETV> Buildee<ETV>.yieldWithoutAnnotation(value: ETV) {}
|
|||||||
fun <ETV> Buildee<ETV>.yieldWithAnnotation(t: ETV) {}
|
fun <ETV> Buildee<ETV>.yieldWithAnnotation(t: ETV) {}
|
||||||
|
|
||||||
fun test() {
|
fun test() {
|
||||||
val buildeeA = <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>build<!> {
|
val buildeeA = build {
|
||||||
yieldWithoutAnnotation(materializeBuildee<TargetType>())
|
yieldWithoutAnnotation(materializeBuildee<TargetType>())
|
||||||
yieldWithoutAnnotation(<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>materializeBuildee<!>())
|
yieldWithoutAnnotation(materializeBuildee())
|
||||||
}
|
}
|
||||||
// exact type equality check — turns unexpected compile-time behavior into red code
|
// exact type equality check — turns unexpected compile-time behavior into red code
|
||||||
// considered to be non-user-reproducible code for the purposes of these tests
|
// considered to be non-user-reproducible code for the purposes of these tests
|
||||||
<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>checkExactType<!><<!CANNOT_INFER_PARAMETER_TYPE!>Buildee<Buildee<TargetType>><!>>(buildeeA)
|
checkExactType<Buildee<Buildee<TargetType>>>(buildeeA)
|
||||||
|
|
||||||
val buildeeB = build {
|
val buildeeB = build {
|
||||||
yieldWithAnnotation(materializeBuildee<TargetType>())
|
yieldWithAnnotation(materializeBuildee<TargetType>())
|
||||||
|
|||||||
@@ -2,10 +2,10 @@
|
|||||||
// CHECK_TYPE_WITH_EXACT
|
// CHECK_TYPE_WITH_EXACT
|
||||||
|
|
||||||
fun test() {
|
fun test() {
|
||||||
val buildee = <!NEW_INFERENCE_ERROR!>build {
|
val buildee = build {
|
||||||
setTypeVariable(TargetType())
|
setTypeVariable(TargetType())
|
||||||
extensionSetOutProjectedTypeVariable(DifferentType())
|
extensionSetOutProjectedTypeVariable(DifferentType())
|
||||||
}<!>
|
}
|
||||||
// exact type equality check — turns unexpected compile-time behavior into red code
|
// exact type equality check — turns unexpected compile-time behavior into red code
|
||||||
// considered to be non-user-reproducible code for the purposes of these tests
|
// considered to be non-user-reproducible code for the purposes of these tests
|
||||||
checkExactType<Buildee<TargetType>>(buildee)
|
checkExactType<Buildee<TargetType>>(buildee)
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
fun test() {
|
fun test() {
|
||||||
val buildee = build {
|
val buildee = build {
|
||||||
setTypeVariable(Any())
|
setTypeVariable(Any())
|
||||||
<!OVERLOAD_RESOLUTION_AMBIGUITY!>consumeBuildeeReceiver<!>()
|
consumeBuildeeReceiver()
|
||||||
}
|
}
|
||||||
// exact type equality check — turns unexpected compile-time behavior into red code
|
// exact type equality check — turns unexpected compile-time behavior into red code
|
||||||
// considered to be non-user-reproducible code for the purposes of these tests
|
// considered to be non-user-reproducible code for the purposes of these tests
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
fun test() {
|
fun test() {
|
||||||
val buildee = build {
|
val buildee = build {
|
||||||
setTypeVariable(TargetType())
|
setTypeVariable(TargetType())
|
||||||
<!OVERLOAD_RESOLUTION_AMBIGUITY!>consume<!>(getTypeVariable())
|
consume(getTypeVariable())
|
||||||
}
|
}
|
||||||
// exact type equality check — turns unexpected compile-time behavior into red code
|
// exact type equality check — turns unexpected compile-time behavior into red code
|
||||||
// considered to be non-user-reproducible code for the purposes of these tests
|
// considered to be non-user-reproducible code for the purposes of these tests
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
// ISSUE: KT-60291
|
||||||
|
// CHECK_TYPE_WITH_EXACT
|
||||||
|
// WITH_STDLIB
|
||||||
|
|
||||||
|
fun test() {
|
||||||
|
val buildee = selectBuildee(
|
||||||
|
build { setTypeVariable(TargetType()) },
|
||||||
|
build {}
|
||||||
|
)
|
||||||
|
// exact type equality check — turns unexpected compile-time behavior into red code
|
||||||
|
// considered to be non-user-reproducible code for the purposes of these tests
|
||||||
|
checkExactType<Buildee<TargetType>>(buildee)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
fun <T> selectBuildee(vararg values: Buildee<T>): Buildee<T> = values.first()
|
||||||
|
|
||||||
|
class TargetType
|
||||||
|
|
||||||
|
class Buildee<TV> {
|
||||||
|
fun setTypeVariable(value: TV) { storage = value }
|
||||||
|
private var storage: TV = null!!
|
||||||
|
}
|
||||||
|
|
||||||
|
fun <PTV> build(instructions: Buildee<PTV>.() -> Unit): Buildee<PTV> {
|
||||||
|
return Buildee<PTV>().apply(instructions)
|
||||||
|
}
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
// ISSUE: KT-60291
|
// ISSUE: KT-60291
|
||||||
// FIR_IDENTICAL
|
|
||||||
// CHECK_TYPE_WITH_EXACT
|
// CHECK_TYPE_WITH_EXACT
|
||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
// ISSUE: KT-60291
|
||||||
|
// CHECK_TYPE_WITH_EXACT
|
||||||
|
|
||||||
|
fun test() {
|
||||||
|
val buildee = if (true)
|
||||||
|
build { setTypeVariable(TargetType()) }
|
||||||
|
else
|
||||||
|
build {}
|
||||||
|
// exact type equality check — turns unexpected compile-time behavior into red code
|
||||||
|
// considered to be non-user-reproducible code for the purposes of these tests
|
||||||
|
checkExactType<Buildee<TargetType>>(buildee)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class TargetType
|
||||||
|
|
||||||
|
class Buildee<TV> {
|
||||||
|
fun setTypeVariable(value: TV) { storage = value }
|
||||||
|
private var storage: TV = null!!
|
||||||
|
}
|
||||||
|
|
||||||
|
fun <PTV> build(instructions: Buildee<PTV>.() -> Unit): Buildee<PTV> {
|
||||||
|
return Buildee<PTV>().apply(instructions)
|
||||||
|
}
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
// ISSUE: KT-60291
|
// ISSUE: KT-60291
|
||||||
// FIR_IDENTICAL
|
|
||||||
// CHECK_TYPE_WITH_EXACT
|
// CHECK_TYPE_WITH_EXACT
|
||||||
|
|
||||||
fun test() {
|
fun test() {
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
// ISSUE: KT-60291
|
||||||
|
// CHECK_TYPE_WITH_EXACT
|
||||||
|
|
||||||
|
fun test() {
|
||||||
|
val buildee = when ("") {
|
||||||
|
"true" -> build { setTypeVariable(TargetType()) }
|
||||||
|
"false" -> build {}
|
||||||
|
else -> Buildee()
|
||||||
|
}
|
||||||
|
// exact type equality check — turns unexpected compile-time behavior into red code
|
||||||
|
// considered to be non-user-reproducible code for the purposes of these tests
|
||||||
|
checkExactType<Buildee<TargetType>>(buildee)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class TargetType
|
||||||
|
|
||||||
|
class Buildee<TV> {
|
||||||
|
fun setTypeVariable(value: TV) { storage = value }
|
||||||
|
private var storage: TV = null!!
|
||||||
|
}
|
||||||
|
|
||||||
|
fun <PTV> build(instructions: Buildee<PTV>.() -> Unit): Buildee<PTV> {
|
||||||
|
return Buildee<PTV>().apply(instructions)
|
||||||
|
}
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
// ISSUE: KT-60291
|
// ISSUE: KT-60291
|
||||||
// FIR_IDENTICAL
|
|
||||||
// CHECK_TYPE_WITH_EXACT
|
// CHECK_TYPE_WITH_EXACT
|
||||||
|
|
||||||
fun test() {
|
fun test() {
|
||||||
|
|||||||
@@ -1,30 +0,0 @@
|
|||||||
// ISSUE: KT-61310
|
|
||||||
// CHECK_TYPE_WITH_EXACT
|
|
||||||
|
|
||||||
fun test() {
|
|
||||||
val buildee = <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER, NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>build<!> {
|
|
||||||
if (true) {
|
|
||||||
setTypeVariable(<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER, NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>GenericBox<!>())
|
|
||||||
} else {
|
|
||||||
setTypeVariable(GenericBox<TargetType>())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// exact type equality check — turns unexpected compile-time behavior into red code
|
|
||||||
// considered to be non-user-reproducible code for the purposes of these tests
|
|
||||||
<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>checkExactType<!><<!CANNOT_INFER_PARAMETER_TYPE!>Buildee<GenericBox<TargetType>><!>>(buildee)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class TargetType
|
|
||||||
class GenericBox<T>
|
|
||||||
|
|
||||||
class Buildee<TV> {
|
|
||||||
fun setTypeVariable(value: TV) { storage = value }
|
|
||||||
private var storage: TV = null!!
|
|
||||||
}
|
|
||||||
|
|
||||||
fun <PTV> build(instructions: Buildee<PTV>.() -> Unit): Buildee<PTV> {
|
|
||||||
return Buildee<PTV>().apply(instructions)
|
|
||||||
}
|
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
|
// FIR_IDENTICAL
|
||||||
// ISSUE: KT-61310
|
// ISSUE: KT-61310
|
||||||
// CHECK_TYPE_WITH_EXACT
|
// CHECK_TYPE_WITH_EXACT
|
||||||
|
|
||||||
|
|||||||
@@ -10,11 +10,11 @@ fun test() {
|
|||||||
}
|
}
|
||||||
val buildee = boundedBuild {
|
val buildee = boundedBuild {
|
||||||
setBoundedTypeVariable(TargetType())
|
setBoundedTypeVariable(TargetType())
|
||||||
setBoundedTypeVariable(<!ARGUMENT_TYPE_MISMATCH!>DifferentType()<!>)
|
setBoundedTypeVariable(DifferentType())
|
||||||
}
|
}
|
||||||
// exact type equality check — turns unexpected compile-time behavior into red code
|
// exact type equality check — turns unexpected compile-time behavior into red code
|
||||||
// considered to be non-user-reproducible code for the purposes of these tests
|
// considered to be non-user-reproducible code for the purposes of these tests
|
||||||
checkExactType<BoundedBuildee<TargetType>>(<!ARGUMENT_TYPE_MISMATCH("BoundedBuildee<TargetType>; BoundedBuildee<kotlin.Any>")!>buildee<!>)
|
checkExactType<BoundedBuildee<TargetType>>(buildee)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -3,12 +3,12 @@
|
|||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
|
|
||||||
fun test() {
|
fun test() {
|
||||||
val buildee = <!NEW_INFERENCE_ERROR!>build {
|
val buildee = build {
|
||||||
select(
|
select(
|
||||||
replaceTypeVariable(TargetType()),
|
replaceTypeVariable(TargetType()),
|
||||||
DifferentType()
|
DifferentType()
|
||||||
)
|
)
|
||||||
}<!>
|
}
|
||||||
// exact type equality check — turns unexpected compile-time behavior into red code
|
// exact type equality check — turns unexpected compile-time behavior into red code
|
||||||
// considered to be non-user-reproducible code for the purposes of these tests
|
// considered to be non-user-reproducible code for the purposes of these tests
|
||||||
checkExactType<Buildee<TargetType>>(buildee)
|
checkExactType<Buildee<TargetType>>(buildee)
|
||||||
|
|||||||
+2
-2
@@ -2,12 +2,12 @@
|
|||||||
// CHECK_TYPE_WITH_EXACT
|
// CHECK_TYPE_WITH_EXACT
|
||||||
|
|
||||||
fun test() {
|
fun test() {
|
||||||
val buildee = <!NEW_INFERENCE_ERROR!>build {
|
val buildee = build {
|
||||||
if (true)
|
if (true)
|
||||||
replaceTypeVariable(TargetType())
|
replaceTypeVariable(TargetType())
|
||||||
else
|
else
|
||||||
DifferentType()
|
DifferentType()
|
||||||
}<!>
|
}
|
||||||
// exact type equality check — turns unexpected compile-time behavior into red code
|
// exact type equality check — turns unexpected compile-time behavior into red code
|
||||||
// considered to be non-user-reproducible code for the purposes of these tests
|
// considered to be non-user-reproducible code for the purposes of these tests
|
||||||
checkExactType<Buildee<TargetType>>(buildee)
|
checkExactType<Buildee<TargetType>>(buildee)
|
||||||
|
|||||||
+2
-2
@@ -2,12 +2,12 @@
|
|||||||
// CHECK_TYPE_WITH_EXACT
|
// CHECK_TYPE_WITH_EXACT
|
||||||
|
|
||||||
fun test() {
|
fun test() {
|
||||||
val buildee = <!NEW_INFERENCE_ERROR!>build {
|
val buildee = build {
|
||||||
when {
|
when {
|
||||||
true -> replaceTypeVariable(TargetType())
|
true -> replaceTypeVariable(TargetType())
|
||||||
else -> DifferentType()
|
else -> DifferentType()
|
||||||
}
|
}
|
||||||
}<!>
|
}
|
||||||
// exact type equality check — turns unexpected compile-time behavior into red code
|
// exact type equality check — turns unexpected compile-time behavior into red code
|
||||||
// considered to be non-user-reproducible code for the purposes of these tests
|
// considered to be non-user-reproducible code for the purposes of these tests
|
||||||
checkExactType<Buildee<TargetType>>(buildee)
|
checkExactType<Buildee<TargetType>>(buildee)
|
||||||
|
|||||||
+4
-4
@@ -38,23 +38,23 @@ class Placeholder
|
|||||||
// test 1: PTV is in consuming position (yield-case)
|
// test 1: PTV is in consuming position (yield-case)
|
||||||
fun testYield() {
|
fun testYield() {
|
||||||
val arg: UserKlass = UserKlass()
|
val arg: UserKlass = UserKlass()
|
||||||
val buildee = <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>build<!> {
|
val buildee = build {
|
||||||
nestedBuild {
|
nestedBuild {
|
||||||
yield(arg)
|
yield(arg)
|
||||||
nestedYield(Placeholder())
|
nestedYield(Placeholder())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>checkExactType<!><<!CANNOT_INFER_PARAMETER_TYPE!>Buildee<UserKlass><!>>(buildee)
|
checkExactType<Buildee<UserKlass>>(buildee)
|
||||||
}
|
}
|
||||||
|
|
||||||
// test 2: PTV is in producing position (materialize-case)
|
// test 2: PTV is in producing position (materialize-case)
|
||||||
fun testMaterialize() {
|
fun testMaterialize() {
|
||||||
fun consume(arg: UserKlass) {}
|
fun consume(arg: UserKlass) {}
|
||||||
val buildee = <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>build<!> {
|
val buildee = build {
|
||||||
nestedBuild {
|
nestedBuild {
|
||||||
consume(materialize())
|
consume(materialize())
|
||||||
nestedYield(Placeholder())
|
nestedYield(Placeholder())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>checkExactType<!><<!CANNOT_INFER_PARAMETER_TYPE!>Buildee<UserKlass><!>>(buildee)
|
checkExactType<Buildee<UserKlass>>(buildee)
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -27,5 +27,5 @@ fun testMaterialize() {
|
|||||||
val buildee = build {
|
val buildee = build {
|
||||||
shareTypeInfo(null, materialize())
|
shareTypeInfo(null, materialize())
|
||||||
}
|
}
|
||||||
checkExactType<Buildee<Nothing?>>(<!ARGUMENT_TYPE_MISMATCH("Buildee<kotlin.Nothing?>; Buildee<kotlin.Nothing>")!>buildee<!>)
|
checkExactType<Buildee<Nothing?>>(buildee)
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -14,12 +14,12 @@
|
|||||||
|
|
||||||
// PTV is returned as a last statement of the builder argument
|
// PTV is returned as a last statement of the builder argument
|
||||||
fun testLastStatementReturn() {
|
fun testLastStatementReturn() {
|
||||||
val buildee = <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>build<!> {
|
val buildee = build {
|
||||||
materialize()
|
materialize()
|
||||||
}
|
}
|
||||||
// exact type equality check — turns unexpected compile-time behavior into red code
|
// exact type equality check — turns unexpected compile-time behavior into red code
|
||||||
// considered to be non-user-reproducible code for the purposes of these tests
|
// considered to be non-user-reproducible code for the purposes of these tests
|
||||||
<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>checkExactType<!><<!CANNOT_INFER_PARAMETER_TYPE!>Buildee<Unit><!>>(buildee)
|
checkExactType<Buildee<Unit>>(buildee)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* REQUIRED DECLARATIONS */
|
/* REQUIRED DECLARATIONS */
|
||||||
|
|||||||
+21
-21
@@ -49,40 +49,40 @@ fun main() {
|
|||||||
add("one")
|
add("one")
|
||||||
|
|
||||||
val secondParameter = get(1)
|
val secondParameter = get(1)
|
||||||
<!OVERLOAD_RESOLUTION_AMBIGUITY!>println<!>(secondParameter) // ERROR: [OVERLOAD_RESOLUTION_AMBIGUITY] Overload resolution ambiguity. All these functions match.
|
println(secondParameter) // ERROR: [OVERLOAD_RESOLUTION_AMBIGUITY] Overload resolution ambiguity. All these functions match.
|
||||||
}
|
}
|
||||||
val list2 = buildList {
|
val list2 = buildList {
|
||||||
add("one")
|
add("one")
|
||||||
|
|
||||||
<!OVERLOAD_RESOLUTION_AMBIGUITY!>println<!>(get(1)) // ERROR: [OVERLOAD_RESOLUTION_AMBIGUITY] Overload resolution ambiguity. All these functions match.
|
println(get(1)) // ERROR: [OVERLOAD_RESOLUTION_AMBIGUITY] Overload resolution ambiguity. All these functions match.
|
||||||
}
|
}
|
||||||
val list3 = buildList {
|
val list3 = buildList {
|
||||||
add("one")
|
add("one")
|
||||||
|
|
||||||
val secondParameter = Inv(get(1))
|
val secondParameter = Inv(get(1))
|
||||||
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>(secondParameter)
|
foo(secondParameter)
|
||||||
}
|
}
|
||||||
val list4 = buildList {
|
val list4 = buildList {
|
||||||
add("one")
|
add("one")
|
||||||
|
|
||||||
val secondParameter = get(1)
|
val secondParameter = get(1)
|
||||||
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>(Inv(secondParameter))
|
foo(Inv(secondParameter))
|
||||||
}
|
}
|
||||||
val list5 = buildList {
|
val list5 = buildList {
|
||||||
add("one")
|
add("one")
|
||||||
|
|
||||||
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>(Inv(get(1)))
|
foo(Inv(get(1)))
|
||||||
}
|
}
|
||||||
val list6 = buildList {
|
val list6 = buildList {
|
||||||
add("one")
|
add("one")
|
||||||
|
|
||||||
get(0).<!NONE_APPLICABLE!>bar<!>()
|
<!BUILDER_INFERENCE_STUB_RECEIVER!>get(0)<!>.bar()
|
||||||
}
|
}
|
||||||
val list7 = buildList {
|
val list7 = buildList {
|
||||||
add("one")
|
add("one")
|
||||||
|
|
||||||
with (get(0)) {
|
with (get(0)) {
|
||||||
<!NONE_APPLICABLE!>bar<!>()
|
bar()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
val list71 = buildList {
|
val list71 = buildList {
|
||||||
@@ -90,7 +90,7 @@ fun main() {
|
|||||||
|
|
||||||
with (get(0)) l1@ {
|
with (get(0)) l1@ {
|
||||||
with (listOf(1)) {
|
with (listOf(1)) {
|
||||||
<!NONE_APPLICABLE!>bar<!>()
|
bar()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -99,21 +99,21 @@ fun main() {
|
|||||||
|
|
||||||
with (get(0)) {
|
with (get(0)) {
|
||||||
with (listOf(1)) {
|
with (listOf(1)) {
|
||||||
<!NONE_APPLICABLE!>bar<!>()
|
bar()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
val list8 = buildList {
|
val list8 = buildList {
|
||||||
add("one")
|
add("one")
|
||||||
|
|
||||||
Inv(get(0)).<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo2<!>()
|
Inv(get(0)).foo2()
|
||||||
}
|
}
|
||||||
val list9 = buildList {
|
val list9 = buildList {
|
||||||
add("one")
|
add("one")
|
||||||
|
|
||||||
with (get(0)) {
|
with (get(0)) {
|
||||||
with (Inv(this)) {
|
with (Inv(this)) {
|
||||||
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo2<!>()
|
foo2()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -122,7 +122,7 @@ fun main() {
|
|||||||
|
|
||||||
with (get(0)) {
|
with (get(0)) {
|
||||||
with (Inv(this)) {
|
with (Inv(this)) {
|
||||||
<!NONE_APPLICABLE!>bar<!>()
|
bar()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -148,46 +148,46 @@ fun main() {
|
|||||||
val list13 = buildList {
|
val list13 = buildList {
|
||||||
add("one")
|
add("one")
|
||||||
|
|
||||||
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo000<!>(get(0), 0f, get(0))
|
foo000(get(0), 0f, get(0))
|
||||||
}
|
}
|
||||||
|
|
||||||
val list14 = buildList {
|
val list14 = buildList {
|
||||||
add("one")
|
add("one")
|
||||||
|
|
||||||
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo0000<!>(get(0), 0f, get(0))
|
foo0000(get(0), 0f, get(0))
|
||||||
}
|
}
|
||||||
|
|
||||||
val list17 = buildList l1@ {
|
val list17 = buildList l1@ {
|
||||||
add("one")
|
add("one")
|
||||||
|
|
||||||
with (get(0)) {
|
with (get(0)) {
|
||||||
<!NONE_APPLICABLE!>foo0003<!>(0f, this@l1.get(0))
|
foo0003(0f, <!ARGUMENT_TYPE_MISMATCH!>this@l1.get(0)<!>)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val list18 = buildList {
|
val list18 = buildList {
|
||||||
add("one")
|
add("one")
|
||||||
|
|
||||||
get(0).<!NONE_APPLICABLE!>foo0003<!>(0f, get(0))
|
<!BUILDER_INFERENCE_STUB_RECEIVER!>get(0)<!>.foo0003(0f, <!ARGUMENT_TYPE_MISMATCH!>get(0)<!>)
|
||||||
}
|
}
|
||||||
|
|
||||||
val map1 = buildMap {
|
val map1 = buildMap {
|
||||||
put(1, "one")
|
put(1, "one")
|
||||||
|
|
||||||
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo11<!>(entries)
|
foo11(entries)
|
||||||
}
|
}
|
||||||
|
|
||||||
// There aren't specific errors below as casting value arguments doesn't make a resolve successful
|
// There aren't specific errors below as casting value arguments doesn't make a resolve successful
|
||||||
val list15 = buildList {
|
val list15 = buildList {
|
||||||
add("one")
|
add("one")
|
||||||
|
|
||||||
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo0001<!>(get(0), 0f, get(0))
|
<!NONE_APPLICABLE!>foo0001<!>(get(0), 0f, get(0))
|
||||||
}
|
}
|
||||||
|
|
||||||
val list16 = buildList {
|
val list16 = buildList {
|
||||||
add("one")
|
add("one")
|
||||||
|
|
||||||
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo0002<!>(get(0), 0f, get(0))
|
<!NONE_APPLICABLE!>foo0002<!>(get(0), 0f, get(0))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -211,13 +211,13 @@ fun test() {
|
|||||||
add("")
|
add("")
|
||||||
with (get()) {
|
with (get()) {
|
||||||
with (listOf(1)) {
|
with (listOf(1)) {
|
||||||
<!NONE_APPLICABLE!>bar<!>()
|
bar()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
put(1, "one")
|
put(1, "one")
|
||||||
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo11<!>(entries())
|
foo11(entries())
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
+12
@@ -0,0 +1,12 @@
|
|||||||
|
// WITH_STDLIB
|
||||||
|
// ISSUE: KT-50293
|
||||||
|
|
||||||
|
fun main() {
|
||||||
|
val list = buildList {
|
||||||
|
add("one")
|
||||||
|
add("two")
|
||||||
|
|
||||||
|
val secondParameter = get(1)
|
||||||
|
println(secondParameter <!USELESS_CAST!>as String<!>)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,3 @@
|
|||||||
// FIR_IDENTICAL
|
|
||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
// ISSUE: KT-50293
|
// ISSUE: KT-50293
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,6 @@ fun interface ReadOnlyProperty<in T, out V> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class Problem {
|
class Problem {
|
||||||
val variable: Int by <!DELEGATE_SPECIAL_FUNCTION_NONE_APPLICABLE!><!INFERRED_TYPE_VARIABLE_INTO_POSSIBLE_EMPTY_INTERSECTION!>delegate<!>()<!> // delegate returns `ReadOnlyProperty<Problem, {CharSequence & Int}>`
|
val variable: Int by <!INFERRED_TYPE_VARIABLE_INTO_POSSIBLE_EMPTY_INTERSECTION!>delegate<!>() // delegate returns `ReadOnlyProperty<Problem, {CharSequence & Int}>`
|
||||||
fun <T : CharSequence> delegate() = null <!CAST_NEVER_SUCCEEDS!>as<!> ReadOnlyProperty<Problem, T>
|
fun <T : CharSequence> delegate() = null <!CAST_NEVER_SUCCEEDS!>as<!> ReadOnlyProperty<Problem, T>
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+6
-6
@@ -28,11 +28,11 @@ internal class TowerDataElementsForName2() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
internal class TowerDataElementsForName3() {
|
internal class TowerDataElementsForName3() {
|
||||||
val reversedFilteredLocalScopes by <!DELEGATE_SPECIAL_FUNCTION_NONE_APPLICABLE!><!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>lazy<!>(LazyThreadSafetyMode.NONE) {
|
val reversedFilteredLocalScopes by lazy(LazyThreadSafetyMode.NONE) {
|
||||||
@OptIn(ExperimentalStdlibApi::class)
|
@OptIn(ExperimentalStdlibApi::class)
|
||||||
<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>buildList<!> l1@ {
|
buildList l1@ {
|
||||||
for (i in lastIndex downTo 0) {
|
for (i in lastIndex downTo 0) {
|
||||||
val reversedFilteredLocalScopes by <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>lazy(LazyThreadSafetyMode.NONE) {
|
val reversedFilteredLocalScopes by lazy(LazyThreadSafetyMode.NONE) {
|
||||||
@OptIn(ExperimentalStdlibApi::class)
|
@OptIn(ExperimentalStdlibApi::class)
|
||||||
buildList {
|
buildList {
|
||||||
for (i in lastIndex downTo 0) {
|
for (i in lastIndex downTo 0) {
|
||||||
@@ -40,15 +40,15 @@ internal class TowerDataElementsForName3() {
|
|||||||
this@l1.add("")
|
this@l1.add("")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}<!>
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}<!>
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal class TowerDataElementsForName4() {
|
internal class TowerDataElementsForName4() {
|
||||||
@OptIn(ExperimentalStdlibApi::class)
|
@OptIn(ExperimentalStdlibApi::class)
|
||||||
val reversedFilteredLocalScopes = <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>buildList<!> l1@ {
|
val reversedFilteredLocalScopes = buildList l1@ {
|
||||||
class Foo {
|
class Foo {
|
||||||
val reversedFilteredLocalScopes by lazy(LazyThreadSafetyMode.NONE) {
|
val reversedFilteredLocalScopes by lazy(LazyThreadSafetyMode.NONE) {
|
||||||
@OptIn(ExperimentalStdlibApi::class)
|
@OptIn(ExperimentalStdlibApi::class)
|
||||||
|
|||||||
+6
-6
@@ -28,11 +28,11 @@ internal class TowerDataElementsForName2() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
internal class TowerDataElementsForName3() {
|
internal class TowerDataElementsForName3() {
|
||||||
val reversedFilteredLocalScopes by <!DELEGATE_SPECIAL_FUNCTION_NONE_APPLICABLE!><!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>lazy<!>(LazyThreadSafetyMode.NONE) {
|
val reversedFilteredLocalScopes by lazy(LazyThreadSafetyMode.NONE) {
|
||||||
@OptIn(ExperimentalStdlibApi::class)
|
@OptIn(ExperimentalStdlibApi::class)
|
||||||
<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>buildList<!> l1@ {
|
buildList l1@ {
|
||||||
for (i in lastIndex downTo 0) {
|
for (i in lastIndex downTo 0) {
|
||||||
val reversedFilteredLocalScopes by <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>lazy(LazyThreadSafetyMode.NONE) {
|
val reversedFilteredLocalScopes by lazy(LazyThreadSafetyMode.NONE) {
|
||||||
@OptIn(ExperimentalStdlibApi::class)
|
@OptIn(ExperimentalStdlibApi::class)
|
||||||
buildList {
|
buildList {
|
||||||
for (i in lastIndex downTo 0) {
|
for (i in lastIndex downTo 0) {
|
||||||
@@ -40,15 +40,15 @@ internal class TowerDataElementsForName3() {
|
|||||||
this@l1.add("")
|
this@l1.add("")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}<!>
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}<!>
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal class TowerDataElementsForName4() {
|
internal class TowerDataElementsForName4() {
|
||||||
@OptIn(ExperimentalStdlibApi::class)
|
@OptIn(ExperimentalStdlibApi::class)
|
||||||
val reversedFilteredLocalScopes = <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>buildList<!> l1@ {
|
val reversedFilteredLocalScopes = buildList l1@ {
|
||||||
class Foo {
|
class Foo {
|
||||||
val reversedFilteredLocalScopes by lazy(LazyThreadSafetyMode.NONE) {
|
val reversedFilteredLocalScopes by lazy(LazyThreadSafetyMode.NONE) {
|
||||||
@OptIn(ExperimentalStdlibApi::class)
|
@OptIn(ExperimentalStdlibApi::class)
|
||||||
|
|||||||
-1
@@ -1 +0,0 @@
|
|||||||
/inconsistentTypeInference.fir.kt:(62,127): error: New inference error [NewConstraintError at Incorporate kotlin/collections/MutableList<TypeVariable(E)> <: kotlin/collections/Collection<kotlin/Int> from Incorporated builder inference constraint kotlin/collections/MutableList<Stub (chain inference): TypeVariable(E)> <: kotlin/collections/Collection<TypeVariable(T)> from Receiver this@R|special/anonymous| into some call from position Incorporated builder inference constraint kotlin/collections/MutableList<Stub (chain inference): TypeVariable(E)> <: kotlin/collections/Collection<TypeVariable(T)> from Receiver this@R|special/anonymous| into some call: kotlin/String <!: kotlin/Int].
|
|
||||||
Vendored
+2
-2
@@ -2,9 +2,9 @@
|
|||||||
// FIR_DUMP
|
// FIR_DUMP
|
||||||
|
|
||||||
fun foo() {
|
fun foo() {
|
||||||
<!NEW_INFERENCE_ERROR!>buildList {
|
buildList {
|
||||||
add("Boom")
|
add("Boom")
|
||||||
println(plus(1)[0])
|
println(plus(1)[0])
|
||||||
}<!>
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Vendored
+2
-2
@@ -1,8 +1,8 @@
|
|||||||
FILE: inconsistentTypeInference.fir.kt
|
FILE: inconsistentTypeInference.fir.kt
|
||||||
public final fun foo(): R|kotlin/Unit| {
|
public final fun foo(): R|kotlin/Unit| {
|
||||||
R|kotlin/collections/buildList<CS errors: kotlin/collections/buildList>#|<R|kotlin/String|>(<L> = buildList@fun R|kotlin/collections/MutableList<kotlin/String>|.<anonymous>(): R|kotlin/Unit| <inline=Inline, kind=EXACTLY_ONCE> {
|
R|kotlin/collections/buildList|<R|kotlin/String|>(<L> = buildList@fun R|kotlin/collections/MutableList<kotlin/String>|.<anonymous>(): R|kotlin/Unit| <inline=Inline, kind=EXACTLY_ONCE> {
|
||||||
this@R|special/anonymous|.R|SubstitutionOverride<kotlin/collections/MutableList.add: R|kotlin/Boolean|>|(String(Boom))
|
this@R|special/anonymous|.R|SubstitutionOverride<kotlin/collections/MutableList.add: R|kotlin/Boolean|>|(String(Boom))
|
||||||
R|kotlin/io/println|(this@R|special/anonymous|.R|kotlin/collections/plus|<R|kotlin/Int|>(Int(1)).R|SubstitutionOverride<kotlin/collections/List.get: R|kotlin/Int|>|(Int(0)))
|
R|kotlin/io/println|(this@R|special/anonymous|.R|kotlin/collections/plus|<R|it(kotlin/Comparable<*> & java/io/Serializable)|>(Int(1)).R|SubstitutionOverride<kotlin/collections/List.get: R|it(kotlin/Comparable<*> & java/io/Serializable)|>|(Int(0)))
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
-1
@@ -1 +0,0 @@
|
|||||||
/inconsistentTypeInference2.fir.kt:(62,132): error: New inference error [NewConstraintError at Incorporate kotlin/collections/MutableList<TypeVariable(E)> <: kotlin/collections/Collection<kotlin/Int> from Incorporated builder inference constraint kotlin/collections/MutableList<Stub (chain inference): TypeVariable(E)> <: kotlin/collections/Collection<TypeVariable(T)> from Receiver this@R|special/anonymous| into some call from position Incorporated builder inference constraint kotlin/collections/MutableList<Stub (chain inference): TypeVariable(E)> <: kotlin/collections/Collection<TypeVariable(T)> from Receiver this@R|special/anonymous| into some call: kotlin/String <!: kotlin/Int].
|
|
||||||
Vendored
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
// FIR_DUMP
|
// FIR_DUMP
|
||||||
|
|
||||||
fun bar() {
|
fun bar() {
|
||||||
<!NEW_INFERENCE_ERROR!>buildList {
|
buildList {
|
||||||
add("Boom")
|
add("Boom")
|
||||||
println(this.plus(1)[0])
|
println(this.plus(1)[0])
|
||||||
}<!>
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+2
-2
@@ -1,8 +1,8 @@
|
|||||||
FILE: inconsistentTypeInference2.fir.kt
|
FILE: inconsistentTypeInference2.fir.kt
|
||||||
public final fun bar(): R|kotlin/Unit| {
|
public final fun bar(): R|kotlin/Unit| {
|
||||||
R|kotlin/collections/buildList<CS errors: kotlin/collections/buildList>#|<R|kotlin/String|>(<L> = buildList@fun R|kotlin/collections/MutableList<kotlin/String>|.<anonymous>(): R|kotlin/Unit| <inline=Inline, kind=EXACTLY_ONCE> {
|
R|kotlin/collections/buildList|<R|kotlin/String|>(<L> = buildList@fun R|kotlin/collections/MutableList<kotlin/String>|.<anonymous>(): R|kotlin/Unit| <inline=Inline, kind=EXACTLY_ONCE> {
|
||||||
this@R|special/anonymous|.R|SubstitutionOverride<kotlin/collections/MutableList.add: R|kotlin/Boolean|>|(String(Boom))
|
this@R|special/anonymous|.R|SubstitutionOverride<kotlin/collections/MutableList.add: R|kotlin/Boolean|>|(String(Boom))
|
||||||
R|kotlin/io/println|(this@R|special/anonymous|.R|kotlin/collections/plus|<R|kotlin/Int|>(Int(1)).R|SubstitutionOverride<kotlin/collections/List.get: R|kotlin/Int|>|(Int(0)))
|
R|kotlin/io/println|(this@R|special/anonymous|.R|kotlin/collections/plus|<R|it(kotlin/Comparable<*> & java/io/Serializable)|>(Int(1)).R|SubstitutionOverride<kotlin/collections/List.get: R|it(kotlin/Comparable<*> & java/io/Serializable)|>|(Int(0)))
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user