JVM_IR. Support generic constructors after "Roll back constructor type parameters"
This commit is contained in:
committed by
romanart
parent
0b926af203
commit
5c0cdac69f
+7
-1
@@ -1149,7 +1149,13 @@ class ExpressionCodegen(
|
|||||||
memberAccessExpression: IrMemberAccessExpression,
|
memberAccessExpression: IrMemberAccessExpression,
|
||||||
descriptor: CallableDescriptor
|
descriptor: CallableDescriptor
|
||||||
): IrCallGenerator {
|
): IrCallGenerator {
|
||||||
val typeArguments = descriptor.original.typeParameters.keysToMap { memberAccessExpression.getTypeArgumentOrDefault(it) }
|
val typeArguments =
|
||||||
|
if (memberAccessExpression.typeArgumentsCount == 0) {
|
||||||
|
//avoid ambiguity with type constructor type parameters
|
||||||
|
emptyMap()
|
||||||
|
} else descriptor.original.typeParameters.keysToMap {
|
||||||
|
memberAccessExpression.getTypeArgumentOrDefault(it)
|
||||||
|
}
|
||||||
|
|
||||||
val mappings = TypeParameterMappings()
|
val mappings = TypeParameterMappings()
|
||||||
for (entry in typeArguments.entries) {
|
for (entry in typeArguments.entries) {
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
class Outer {
|
class Outer {
|
||||||
inner class Inner<T>(val t: T) {
|
inner class Inner<T>(val t: T) {
|
||||||
fun box() = t
|
fun box() = t
|
||||||
|
|||||||
Reference in New Issue
Block a user