Fix compilation errors after rebasing.

This commit is contained in:
Mark Punzalan
2019-03-19 10:55:17 -07:00
committed by max-kammerer
parent 656f6855bb
commit 7276b7e66a
2 changed files with 7 additions and 18 deletions
@@ -7,14 +7,13 @@ package org.jetbrains.kotlin.backend.common.lower.loops
import org.jetbrains.kotlin.backend.common.CommonBackendContext import org.jetbrains.kotlin.backend.common.CommonBackendContext
import org.jetbrains.kotlin.backend.common.lower.matchers.IrCallMatcher import org.jetbrains.kotlin.backend.common.lower.matchers.IrCallMatcher
import org.jetbrains.kotlin.backend.common.utils.isSubtypeOf
import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.IrElement
import org.jetbrains.kotlin.ir.declarations.IrValueDeclaration import org.jetbrains.kotlin.ir.declarations.IrValueDeclaration
import org.jetbrains.kotlin.ir.declarations.IrVariable import org.jetbrains.kotlin.ir.declarations.IrVariable
import org.jetbrains.kotlin.ir.expressions.IrCall import org.jetbrains.kotlin.ir.expressions.IrCall
import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.expressions.IrExpression
import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.types.IrType
import org.jetbrains.kotlin.ir.util.defaultType import org.jetbrains.kotlin.ir.types.isSubtypeOfClass
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.utils.addToStdlib.firstNotNullResult import org.jetbrains.kotlin.utils.addToStdlib.firstNotNullResult
@@ -95,9 +94,9 @@ private class ProgressionHeaderInfoBuilder(val context: CommonBackendContext) :
) )
private fun IrType.getProgressionType(): ProgressionType? = when { private fun IrType.getProgressionType(): ProgressionType? = when {
isSubtypeOf(symbols.charProgression.owner.defaultType) -> ProgressionType.CHAR_PROGRESSION isSubtypeOfClass(symbols.charProgression) -> ProgressionType.CHAR_PROGRESSION
isSubtypeOf(symbols.intProgression.owner.defaultType) -> ProgressionType.INT_PROGRESSION isSubtypeOfClass(symbols.intProgression) -> ProgressionType.INT_PROGRESSION
isSubtypeOf(symbols.longProgression.owner.defaultType) -> ProgressionType.LONG_PROGRESSION isSubtypeOfClass(symbols.longProgression) -> ProgressionType.LONG_PROGRESSION
else -> null else -> null
} }
@@ -9,7 +9,6 @@ import org.jetbrains.kotlin.backend.common.CommonBackendContext
import org.jetbrains.kotlin.backend.common.ir.Symbols import org.jetbrains.kotlin.backend.common.ir.Symbols
import org.jetbrains.kotlin.backend.common.lower.DeclarationIrBuilder import org.jetbrains.kotlin.backend.common.lower.DeclarationIrBuilder
import org.jetbrains.kotlin.backend.common.lower.createIrBuilder import org.jetbrains.kotlin.backend.common.lower.createIrBuilder
import org.jetbrains.kotlin.backend.common.utils.isSubtypeOf
import org.jetbrains.kotlin.ir.IrStatement import org.jetbrains.kotlin.ir.IrStatement
import org.jetbrains.kotlin.ir.builders.irCall import org.jetbrains.kotlin.ir.builders.irCall
import org.jetbrains.kotlin.ir.builders.irGet import org.jetbrains.kotlin.ir.builders.irGet
@@ -26,7 +25,6 @@ import org.jetbrains.kotlin.ir.expressions.impl.IrWhileLoopImpl
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
import org.jetbrains.kotlin.ir.symbols.IrSymbol import org.jetbrains.kotlin.ir.symbols.IrSymbol
import org.jetbrains.kotlin.ir.types.* import org.jetbrains.kotlin.ir.types.*
import org.jetbrains.kotlin.ir.types.impl.IrStarProjectionImpl
import org.jetbrains.kotlin.ir.util.functions import org.jetbrains.kotlin.ir.util.functions
import org.jetbrains.kotlin.ir.util.isNullable import org.jetbrains.kotlin.ir.util.isNullable
import org.jetbrains.kotlin.util.OperatorNameConventions import org.jetbrains.kotlin.util.OperatorNameConventions
@@ -143,15 +141,7 @@ internal class HeaderProcessor(
fun processHeader(variable: IrVariable): ForLoopHeader? { fun processHeader(variable: IrVariable): ForLoopHeader? {
assert(variable.origin == IrDeclarationOrigin.FOR_LOOP_ITERATOR) assert(variable.origin == IrDeclarationOrigin.FOR_LOOP_ITERATOR)
// Create iterator type with star projections. if (!variable.type.isSubtypeOfClass(symbols.iterator)) {
val iteratorType = symbols.iterator.run {
createType(
hasQuestionMark = false,
arguments = descriptor.declaredTypeParameters.map { IrStarProjectionImpl }
)
}
if (!variable.type.isSubtypeOf(iteratorType)) {
return null return null
} }
val builder = context.createIrBuilder(scopeOwnerSymbol(), variable.startOffset, variable.endOffset) val builder = context.createIrBuilder(scopeOwnerSymbol(), variable.startOffset, variable.endOffset)
@@ -249,8 +239,8 @@ internal class HeaderProcessor(
return if (type.toKotlinType() == progressionType.elementType(context).toKotlinType()) { return if (type.toKotlinType() == progressionType.elementType(context).toKotlinType()) {
this this
} else { } else {
val function = symbols.getFunction(progressionType.numberCastFunctionName, type.toKotlinType()) val function = type.getClass()!!.functions.first { it.name == progressionType.numberCastFunctionName }
IrCallImpl(startOffset, endOffset, function.owner.returnType, function) IrCallImpl(startOffset, endOffset, function.returnType, function.symbol)
.apply { dispatchReceiver = this@castIfNecessary } .apply { dispatchReceiver = this@castIfNecessary }
} }
} }