Minor. fixes after review
This commit is contained in:
+4
-2
@@ -27,6 +27,7 @@ import org.jetbrains.kotlin.resolve.descriptorUtil.builtIns
|
||||
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||
import org.jetbrains.kotlin.types.*
|
||||
import org.jetbrains.kotlin.types.checker.KotlinTypeChecker
|
||||
import org.jetbrains.kotlin.types.typeUtil.builtIns
|
||||
|
||||
class RawTypeImpl(lowerBound: SimpleType, upperBound: SimpleType) : FlexibleType(lowerBound, upperBound), RawType {
|
||||
init {
|
||||
@@ -66,7 +67,7 @@ class RawTypeImpl(lowerBound: SimpleType, upperBound: SimpleType) : FlexibleType
|
||||
if (options.debugMode) {
|
||||
return "raw ($lowerRendered..$upperRendered)"
|
||||
}
|
||||
if (upperBound.arguments.isEmpty()) return renderer.renderFlexibleType(lowerRendered, upperRendered)
|
||||
if (upperBound.arguments.isEmpty()) return renderer.renderFlexibleType(lowerRendered, upperRendered, builtIns)
|
||||
|
||||
val lowerArgs = renderArguments(lowerBound)
|
||||
val upperArgs = renderArguments(upperBound)
|
||||
@@ -77,7 +78,7 @@ class RawTypeImpl(lowerBound: SimpleType, upperBound: SimpleType) : FlexibleType
|
||||
else upperRendered
|
||||
val newLower = lowerRendered.replaceArgs(newArgs)
|
||||
if (newLower == newUpper) return newLower
|
||||
return renderer.renderFlexibleType(newLower, newUpper)
|
||||
return renderer.renderFlexibleType(newLower, newUpper, builtIns)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,6 +107,7 @@ internal object RawSubstitution : TypeSubstitution() {
|
||||
}
|
||||
}
|
||||
|
||||
// false means that type cannot be raw
|
||||
private fun eraseInflexibleBasedOnClassDescriptor(
|
||||
type: SimpleType, declaration: ClassDescriptor, attr: JavaTypeAttributes
|
||||
): Pair<SimpleType, Boolean> {
|
||||
|
||||
+9
-3
@@ -58,7 +58,7 @@ private open class Result(open val type: KotlinType, val subtreeSize: Int, val w
|
||||
private class SimpleResult(override val type: SimpleType, subtreeSize: Int, wereChanges: Boolean): Result(type, subtreeSize, wereChanges)
|
||||
|
||||
private fun UnwrappedType.enhancePossiblyFlexible(qualifiers: (Int) -> JavaTypeQualifiers, index: Int): Result {
|
||||
if (isError || this is RawTypeImpl) return Result(this, 1, false) // todo: Raw
|
||||
if (isError) return Result(this, 1, false)
|
||||
return when(this) {
|
||||
is FlexibleType -> {
|
||||
val lowerResult = lowerBound.enhanceInflexible(qualifiers, index, TypeComponentPosition.FLEXIBLE_LOWER)
|
||||
@@ -71,8 +71,14 @@ private fun UnwrappedType.enhancePossiblyFlexible(qualifiers: (Int) -> JavaTypeQ
|
||||
|
||||
val wereChanges = lowerResult.wereChanges || upperResult.wereChanges
|
||||
Result(
|
||||
if (wereChanges)
|
||||
KotlinTypeFactory.flexibleType(lowerResult.type, upperResult.type)
|
||||
if (wereChanges) {
|
||||
if (this is RawTypeImpl) {
|
||||
RawTypeImpl(lowerResult.type, upperResult.type)
|
||||
}
|
||||
else {
|
||||
KotlinTypeFactory.flexibleType(lowerResult.type, upperResult.type)
|
||||
}
|
||||
}
|
||||
else
|
||||
this@enhancePossiblyFlexible,
|
||||
lowerResult.subtreeSize,
|
||||
|
||||
Reference in New Issue
Block a user