Support properties reificaton

This commit is contained in:
Mikhael Bogdanov
2019-04-08 10:37:00 +02:00
parent 944c200a5d
commit 2a3a9bb5fc
5 changed files with 3 additions and 6 deletions
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.backend.jvm.codegen
import org.jetbrains.kotlin.backend.common.descriptors.propertyIfAccessor
import org.jetbrains.kotlin.backend.jvm.JvmLoweredDeclarationOrigin
import org.jetbrains.kotlin.backend.jvm.intrinsics.ComparisonIntrinsic
import org.jetbrains.kotlin.backend.jvm.intrinsics.IrIntrinsicFunction
@@ -1283,9 +1284,9 @@ class ExpressionCodegen(
if (memberAccessExpression.typeArgumentsCount == 0) {
//avoid ambiguity with type constructor type parameters
emptyMap()
} else descriptor.original.typeParameters.keysToMap {
} else (descriptor.propertyIfAccessor as? CallableDescriptor)?.original?.typeParameters?.keysToMap {
memberAccessExpression.getTypeArgumentOrDefault(it)
}
} ?: emptyMap()
val mappings = TypeParameterMappings()
for (entry in typeArguments.entries) {
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JVM_IR
// WITH_RUNTIME
// WITH_REFLECT
// FILE: 1.kt
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JVM_IR
// WITH_RUNTIME
// WITH_REFLECT
// FILE: 1.kt
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JVM_IR
// TARGET_BACKEND: JVM
// WITH_RUNTIME
// FILE: 1.kt
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JVM_IR
// TARGET_BACKEND: JVM
// FILE: 1.kt
// WITH_REFLECT