[FIR] Deserialize reference to typealias from metadata as fully expanded
#KT-58335 Fixed
This commit is contained in:
committed by
Space Team
parent
17ad4ceec9
commit
80d68fc908
+1
-1
@@ -5,7 +5,7 @@ FILE: noneWithForEach.kt
|
|||||||
|
|
||||||
}
|
}
|
||||||
public final fun foo(conflicting: R|kotlin/collections/List<Diagnostic>|): R|kotlin/Unit| {
|
public final fun foo(conflicting: R|kotlin/collections/List<Diagnostic>|): R|kotlin/Unit| {
|
||||||
lval filtered: R|kotlin/collections/ArrayList<Diagnostic>| = R|kotlin/collections/arrayListOf|<R|Diagnostic|>()
|
lval filtered: R|java/util/ArrayList<Diagnostic>| = R|kotlin/collections/arrayListOf|<R|Diagnostic|>()
|
||||||
R|<local>/conflicting|.R|kotlin/collections/groupBy|<R|Diagnostic|, R|kotlin/String|>(<L> = groupBy@fun <anonymous>(it: R|Diagnostic|): R|kotlin/String| <inline=Inline, kind=UNKNOWN> {
|
R|<local>/conflicting|.R|kotlin/collections/groupBy|<R|Diagnostic|, R|kotlin/String|>(<L> = groupBy@fun <anonymous>(it: R|Diagnostic|): R|kotlin/String| <inline=Inline, kind=UNKNOWN> {
|
||||||
^ R|<local>/it|.R|/Diagnostic.name|
|
^ R|<local>/it|.R|/Diagnostic.name|
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-2
@@ -200,8 +200,9 @@ class FirTypeDeserializer(
|
|||||||
}
|
}
|
||||||
else -> ConeClassLikeTypeImpl(constructor, arguments, isNullable = proto.nullable, attributes)
|
else -> ConeClassLikeTypeImpl(constructor, arguments, isNullable = proto.nullable, attributes)
|
||||||
}
|
}
|
||||||
val abbreviatedTypeProto = proto.abbreviatedType(typeTable) ?: return simpleType
|
|
||||||
return simpleType(abbreviatedTypeProto, attributes)
|
// TODO: Return abbreviated types for type aliases, see KT-58542
|
||||||
|
return simpleType
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun createSuspendFunctionTypeForBasicCase(
|
private fun createSuspendFunctionTypeForBasicCase(
|
||||||
|
|||||||
+1
-4
@@ -1,8 +1,5 @@
|
|||||||
// This test checks that unresolved typealias in an abbreviated type does not crash the compiler or result in a compilation error.
|
// This test checks that unresolved typealias in an abbreviated type does not crash the compiler or result in a compilation error.
|
||||||
// Apparently, there's some demand for this behavior, see KT-45308.
|
// Apparently, there's some demand for this behavior, see KT-45308, KT-58335.
|
||||||
|
|
||||||
// IGNORE_BACKEND_K2: JVM_IR
|
|
||||||
// FIR status: reports RETURN_TYPE_MISMATCH: Return type mismatch: expected kotlin/String, actual a/A
|
|
||||||
|
|
||||||
// MODULE: a
|
// MODULE: a
|
||||||
// FILE: a.kt
|
// FILE: a.kt
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
public final val x1: R|kotlin/String|
|
||||||
|
public get(): R|kotlin/String|
|
||||||
|
|
||||||
|
public final val x2: R|kotlin/String|
|
||||||
|
public get(): R|kotlin/String|
|
||||||
|
|
||||||
|
public final val x3: R|kotlin/String|
|
||||||
|
public get(): R|kotlin/String|
|
||||||
|
|
||||||
|
public final val x4: R|kotlin/String?|
|
||||||
|
public get(): R|kotlin/String?|
|
||||||
|
|
||||||
|
public final val x5: R|kotlin/String?|
|
||||||
|
public get(): R|kotlin/String?|
|
||||||
|
|
||||||
|
public final val x6: R|kotlin/String?|
|
||||||
|
public get(): R|kotlin/String?|
|
||||||
|
|
||||||
|
public final typealias S = R|kotlin/String|
|
||||||
|
|
||||||
|
public final typealias SS = R|test/S|
|
||||||
|
|
||||||
|
public final typealias SSS = R|test/SS|
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
public final val x1: R|kotlin/String|
|
||||||
|
public get(): R|kotlin/String|
|
||||||
|
|
||||||
|
public final val x2: R|kotlin/String|
|
||||||
|
public get(): R|kotlin/String|
|
||||||
|
|
||||||
|
public final val x3: R|kotlin/String|
|
||||||
|
public get(): R|kotlin/String|
|
||||||
|
|
||||||
|
public final val x4: R|kotlin/String?|
|
||||||
|
public get(): R|kotlin/String?|
|
||||||
|
|
||||||
|
public final val x5: R|kotlin/String?|
|
||||||
|
public get(): R|kotlin/String?|
|
||||||
|
|
||||||
|
public final val x6: R|kotlin/String?|
|
||||||
|
public get(): R|kotlin/String?|
|
||||||
|
|
||||||
|
public final typealias S = R|kotlin/String|
|
||||||
|
|
||||||
|
public final typealias SS = R|kotlin/String|
|
||||||
|
|
||||||
|
public final typealias SSS = R|kotlin/String|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
public final val x1: R|test/S|
|
|
||||||
public get(): R|test/S|
|
|
||||||
|
|
||||||
public final val x2: R|test/SS|
|
|
||||||
public get(): R|test/SS|
|
|
||||||
|
|
||||||
public final val x3: R|test/SSS|
|
|
||||||
public get(): R|test/SSS|
|
|
||||||
|
|
||||||
public final val x4: R|test/S?|
|
|
||||||
public get(): R|test/S?|
|
|
||||||
|
|
||||||
public final val x5: R|test/SS?|
|
|
||||||
public get(): R|test/SS?|
|
|
||||||
|
|
||||||
public final val x6: R|test/SSS?|
|
|
||||||
public get(): R|test/SSS?|
|
|
||||||
|
|
||||||
public final typealias S = R|kotlin/String|
|
|
||||||
|
|
||||||
public final typealias SS = R|test/S|
|
|
||||||
|
|
||||||
public final typealias SSS = R|test/SS|
|
|
||||||
|
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
public final fun test1(x: R|kotlin/collections/List<kotlin/String>|): R|kotlin/Unit|
|
||||||
|
|
||||||
|
public final fun test2(x: R|kotlin/collections/List<kotlin/String>|): R|kotlin/Unit|
|
||||||
|
|
||||||
|
public final fun test3(x: R|kotlin/collections/List<kotlin/String>|): R|kotlin/Unit|
|
||||||
|
|
||||||
|
public final fun test4(x: R|kotlin/collections/List<kotlin/collections/List<kotlin/String>>|): R|kotlin/Unit|
|
||||||
|
|
||||||
|
public final fun test5(x: R|kotlin/collections/List<kotlin/collections/List<kotlin/String>>|): R|kotlin/Unit|
|
||||||
|
|
||||||
|
public final fun test6(x: R|kotlin/collections/List<kotlin/collections/List<kotlin/String>>|): R|kotlin/Unit|
|
||||||
|
|
||||||
|
public final typealias L<T> = R|kotlin/collections/List<T>|
|
||||||
|
|
||||||
|
public final typealias LL<T> = R|test/L<T>|
|
||||||
|
|
||||||
|
public final typealias LLL<T> = R|test/LL<T>|
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
public final fun test1(x: R|kotlin/collections/List<kotlin/String>|): R|kotlin/Unit|
|
||||||
|
|
||||||
|
public final fun test2(x: R|kotlin/collections/List<kotlin/String>|): R|kotlin/Unit|
|
||||||
|
|
||||||
|
public final fun test3(x: R|kotlin/collections/List<kotlin/String>|): R|kotlin/Unit|
|
||||||
|
|
||||||
|
public final fun test4(x: R|kotlin/collections/List<kotlin/collections/List<kotlin/String>>|): R|kotlin/Unit|
|
||||||
|
|
||||||
|
public final fun test5(x: R|kotlin/collections/List<kotlin/collections/List<kotlin/String>>|): R|kotlin/Unit|
|
||||||
|
|
||||||
|
public final fun test6(x: R|kotlin/collections/List<kotlin/collections/List<kotlin/String>>|): R|kotlin/Unit|
|
||||||
|
|
||||||
|
public final typealias L<T> = R|kotlin/collections/List<T>|
|
||||||
|
|
||||||
|
public final typealias LL<T> = R|kotlin/collections/List<T>|
|
||||||
|
|
||||||
|
public final typealias LLL<T> = R|kotlin/collections/List<T>|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
public final fun test1(x: R|test/L<kotlin/String>|): R|kotlin/Unit|
|
|
||||||
|
|
||||||
public final fun test2(x: R|test/LL<kotlin/String>|): R|kotlin/Unit|
|
|
||||||
|
|
||||||
public final fun test3(x: R|test/LLL<kotlin/String>|): R|kotlin/Unit|
|
|
||||||
|
|
||||||
public final fun test4(x: R|test/L<test/L<kotlin/String>>|): R|kotlin/Unit|
|
|
||||||
|
|
||||||
public final fun test5(x: R|test/LL<test/LL<kotlin/String>>|): R|kotlin/Unit|
|
|
||||||
|
|
||||||
public final fun test6(x: R|test/LLL<test/LLL<kotlin/String>>|): R|kotlin/Unit|
|
|
||||||
|
|
||||||
public final typealias L<T> = R|kotlin/collections/List<T>|
|
|
||||||
|
|
||||||
public final typealias LL<T> = R|test/L<T>|
|
|
||||||
|
|
||||||
public final typealias LLL<T> = R|test/LL<T>|
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user