Support type enhancement for super classes' types

This commit is contained in:
Victor Petukhov
2020-12-08 16:09:18 +03:00
parent 276498793f
commit f389654fea
3 changed files with 22 additions and 4 deletions
@@ -91,6 +91,12 @@ class BinaryJavaClass(
val translatedPath = BinaryJavaAnnotation.translatePath(typePath)
when (typeReference.sort) {
TypeReference.CLASS_EXTENDS -> {
val baseType: JavaType = if (typeReference.superTypeIndex == -1) superclass!! else interfaces[typeReference.superTypeIndex]
val targetType = BinaryJavaAnnotation.computeTargetType(baseType, translatedPath)
return BinaryJavaAnnotation.addAnnotation(targetType as JavaPlainType, descriptor, context, signatureParser)
}
TypeReference.CLASS_TYPE_PARAMETER_BOUND -> {
val baseType = computeTypeParameterBound(typeParameters, typeReference)
val targetType = BinaryJavaAnnotation.computeTargetType(baseType, translatedPath)