[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| {
|
||||
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>/it|.R|/Diagnostic.name|
|
||||
}
|
||||
|
||||
+3
-2
@@ -200,8 +200,9 @@ class FirTypeDeserializer(
|
||||
}
|
||||
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(
|
||||
|
||||
+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.
|
||||
// Apparently, there's some demand for this behavior, see KT-45308.
|
||||
|
||||
// IGNORE_BACKEND_K2: JVM_IR
|
||||
// FIR status: reports RETURN_TYPE_MISMATCH: Return type mismatch: expected kotlin/String, actual a/A
|
||||
// Apparently, there's some demand for this behavior, see KT-45308, KT-58335.
|
||||
|
||||
// MODULE: a
|
||||
// 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