diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt index ead6a3bc7d9..dac8dba3c86 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt @@ -1149,7 +1149,13 @@ class ExpressionCodegen( memberAccessExpression: IrMemberAccessExpression, descriptor: CallableDescriptor ): 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() for (entry in typeArguments.entries) { diff --git a/compiler/testData/codegen/box/innerNested/innerGeneric.kt b/compiler/testData/codegen/box/innerNested/innerGeneric.kt index 3e778b5d162..36a6bda1e99 100644 --- a/compiler/testData/codegen/box/innerNested/innerGeneric.kt +++ b/compiler/testData/codegen/box/innerNested/innerGeneric.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR class Outer { inner class Inner(val t: T) { fun box() = t