Stop subtyping constraint search if equality constraints for...
all not fixed type vars are found #KT-35626 fixed
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: +NewInference
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
class Result<T> {
|
||||
fun <R> map(transform: (T) -> R): Result<R> = TODO()
|
||||
}
|
||||
|
||||
class Tuple12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>(
|
||||
val _1: T1, val _2: T2, val _3: T3, val _4: T4, val _5: T5, val _6: T6,
|
||||
val _7: T7, val _8: T8, val _9: T9, val _10: T10, val _11: T11, val _12: T12, val _13: T13
|
||||
)
|
||||
|
||||
fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> rules12(res: Result<Any>):
|
||||
Result<Tuple12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>> {
|
||||
return res.map {
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
Tuple12(
|
||||
it as T1, it as T2, it as T3, it as T4, it as T5, it as T6,
|
||||
it as T7, it as T8, it as T9, it as T10, it as T11, it as T12, it as T13
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
package
|
||||
|
||||
public fun </*0*/ T1, /*1*/ T2, /*2*/ T3, /*3*/ T4, /*4*/ T5, /*5*/ T6, /*6*/ T7, /*7*/ T8, /*8*/ T9, /*9*/ T10, /*10*/ T11, /*11*/ T12, /*12*/ T13> rules12(/*0*/ res: Result<kotlin.Any>): Result<Tuple12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>>
|
||||
|
||||
public final class Result</*0*/ T> {
|
||||
public constructor Result</*0*/ T>()
|
||||
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 final fun </*0*/ R> map(/*0*/ transform: (T) -> R): Result<R>
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final class Tuple12</*0*/ T1, /*1*/ T2, /*2*/ T3, /*3*/ T4, /*4*/ T5, /*5*/ T6, /*6*/ T7, /*7*/ T8, /*8*/ T9, /*9*/ T10, /*10*/ T11, /*11*/ T12, /*12*/ T13> {
|
||||
public constructor Tuple12</*0*/ T1, /*1*/ T2, /*2*/ T3, /*3*/ T4, /*4*/ T5, /*5*/ T6, /*6*/ T7, /*7*/ T8, /*8*/ T9, /*9*/ T10, /*10*/ T11, /*11*/ T12, /*12*/ T13>(/*0*/ _1: T1, /*1*/ _2: T2, /*2*/ _3: T3, /*3*/ _4: T4, /*4*/ _5: T5, /*5*/ _6: T6, /*6*/ _7: T7, /*7*/ _8: T8, /*8*/ _9: T9, /*9*/ _10: T10, /*10*/ _11: T11, /*11*/ _12: T12, /*12*/ _13: T13)
|
||||
public final val _1: T1
|
||||
public final val _10: T10
|
||||
public final val _11: T11
|
||||
public final val _12: T12
|
||||
public final val _13: T13
|
||||
public final val _2: T2
|
||||
public final val _3: T3
|
||||
public final val _4: T4
|
||||
public final val _5: T5
|
||||
public final val _6: T6
|
||||
public final val _7: T7
|
||||
public final val _8: T8
|
||||
public final val _9: T9
|
||||
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
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: +NewInference
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
class Result<T> {
|
||||
fun <R> map(transform: (T) -> R): Result<R> = TODO()
|
||||
}
|
||||
|
||||
class TupleX<T1, T2, T3, T4>(
|
||||
val _1: T1, val _2: T2, val _3: T3, val _4: T4
|
||||
)
|
||||
|
||||
fun <K1, K2, K3, K4> rules(res: Result<Any>):
|
||||
Result<TupleX<K1, K2, K3, K4>> {
|
||||
return res.map {
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
TupleX(
|
||||
it as K1, it as K2, it as K3, it as K4
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
package
|
||||
|
||||
public fun </*0*/ K1, /*1*/ K2, /*2*/ K3, /*3*/ K4> rules(/*0*/ res: Result<kotlin.Any>): Result<TupleX<K1, K2, K3, K4>>
|
||||
|
||||
public final class Result</*0*/ T> {
|
||||
public constructor Result</*0*/ T>()
|
||||
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 final fun </*0*/ R> map(/*0*/ transform: (T) -> R): Result<R>
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final class TupleX</*0*/ T1, /*1*/ T2, /*2*/ T3, /*3*/ T4> {
|
||||
public constructor TupleX</*0*/ T1, /*1*/ T2, /*2*/ T3, /*3*/ T4>(/*0*/ _1: T1, /*1*/ _2: T2, /*2*/ _3: T3, /*3*/ _4: T4)
|
||||
public final val _1: T1
|
||||
public final val _2: T2
|
||||
public final val _3: T3
|
||||
public final val _4: T4
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user