K2: don't make T = Type! substitutions for constructors, including SAM

Without this commit we get some ABI changes and it looks bad.

Related to KT-65596
This commit is contained in:
Mikhail Glukhikh
2024-02-21 13:58:26 +01:00
committed by Space Team
parent 81414d758d
commit 78b6432ced
27 changed files with 159 additions and 76 deletions
@@ -1,5 +1,5 @@
FILE: NamedParameterInConcurrentMap.kt
public final fun main(): R|kotlin/Unit| {
lval map: R|java/util/concurrent/ConcurrentHashMap<kotlin/String!, kotlin/String!>| = R|java/util/concurrent/ConcurrentHashMap.ConcurrentHashMap|<R|kotlin/String!|, R|kotlin/String!|>()
lval map: R|java/util/concurrent/ConcurrentHashMap<kotlin/String, kotlin/String>| = R|java/util/concurrent/ConcurrentHashMap.ConcurrentHashMap|<R|kotlin/String|, R|kotlin/String|>()
R|<local>/map|.R|SubstitutionOverride<java/util/concurrent/ConcurrentHashMap.put: R|@EnhancedNullability kotlin/String?|>|(key = String(key), value = String(value))
}
@@ -2,7 +2,7 @@ FILE: Main.kt
public final fun main(): R|kotlin/Unit| {
lvar generic: R|ft<Raw type Generic<kotlin/Any!>, Generic<*>?>| = Q|Generic|.R|/Generic.raw*s|
lvar inner1: R|ft<Raw type Generic.Inner<kotlin/Any!>, Generic.Inner<*>?>| = R|<local>/generic|.R|SubstitutionOverride</Generic.inner>|
R|<local>/inner1| = R|/Generic.Generic|<R|kotlin/String!|>().R|SubstitutionOverride</Generic.Inner.Inner>|()
R|<local>/inner1| = R|/Generic.Generic|<R|kotlin/String|>().R|SubstitutionOverride</Generic.Inner.Inner>|()
lvar inner2: R|ft<Raw type Generic.Inner<kotlin/Any!>, Generic.Inner<*>?>| = R|<local>/generic|.R|SubstitutionOverride</Generic.rawInner>|
R|<local>/inner2| = R|/Generic.Generic|<R|kotlin/String!|>().R|SubstitutionOverride</Generic.Inner.Inner>|()
R|<local>/inner2| = R|/Generic.Generic|<R|kotlin/String|>().R|SubstitutionOverride</Generic.Inner.Inner>|()
}
@@ -1,6 +1,6 @@
FILE: weakHashMap.kt
public final val someMap: R|java/util/WeakHashMap<kotlin/Any!, kotlin/Any!>| = R|java/util/WeakHashMap.WeakHashMap|<R|kotlin/Any!|, R|kotlin/Any!|>()
public get(): R|java/util/WeakHashMap<kotlin/Any!, kotlin/Any!>|
public final val someMap: R|java/util/WeakHashMap<kotlin/Any?, kotlin/Any?>| = R|java/util/WeakHashMap.WeakHashMap|<R|kotlin/Any?|, R|kotlin/Any?|>()
public get(): R|java/util/WeakHashMap<kotlin/Any?, kotlin/Any?>|
public final fun foo(): R|kotlin/Unit| {
R|/someMap|.R|SubstitutionOverride<java/util/WeakHashMap.get: R|@EnhancedNullability kotlin/Any?|>|(String())
}