Update to support Kotlin 1.5.10

This commit is contained in:
Brian Norman
2021-06-01 22:14:52 -05:00
parent ab0d5d4d63
commit 12a808e8e7
3 changed files with 11 additions and 15 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
plugins { plugins {
kotlin("jvm") version "1.5.0" apply false kotlin("jvm") version "1.5.10" apply false
id("org.jetbrains.dokka") version "0.10.0" apply false id("org.jetbrains.dokka") version "0.10.0" apply false
id("com.gradle.plugin-publish") version "0.11.0" apply false id("com.gradle.plugin-publish") version "0.11.0" apply false
id("com.github.gmazzo.buildconfig") version "2.0.2" apply false id("com.github.gmazzo.buildconfig") version "2.0.2" apply false
@@ -29,7 +29,7 @@ import com.bnorm.power.diagram.substring
import com.bnorm.power.internal.ReturnableBlockTransformer import com.bnorm.power.internal.ReturnableBlockTransformer
import org.jetbrains.kotlin.backend.common.IrElementTransformerVoidWithContext import org.jetbrains.kotlin.backend.common.IrElementTransformerVoidWithContext
import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext
import org.jetbrains.kotlin.backend.common.ir.asSimpleLambda import org.jetbrains.kotlin.backend.common.ir.asInlinable
import org.jetbrains.kotlin.backend.common.ir.inline import org.jetbrains.kotlin.backend.common.ir.inline
import org.jetbrains.kotlin.backend.common.lower.DeclarationIrBuilder import org.jetbrains.kotlin.backend.common.lower.DeclarationIrBuilder
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageLocation import org.jetbrains.kotlin.cli.common.messages.CompilerMessageLocation
@@ -37,7 +37,7 @@ import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
import org.jetbrains.kotlin.cli.common.messages.MessageCollector import org.jetbrains.kotlin.cli.common.messages.MessageCollector
import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.IrElement
import org.jetbrains.kotlin.ir.backend.js.utils.asString import org.jetbrains.kotlin.ir.backend.js.utils.asString
import org.jetbrains.kotlin.ir.builders.irCallOp import org.jetbrains.kotlin.ir.builders.irBlock
import org.jetbrains.kotlin.ir.builders.irString import org.jetbrains.kotlin.ir.builders.irString
import org.jetbrains.kotlin.ir.builders.parent import org.jetbrains.kotlin.ir.builders.parent
import org.jetbrains.kotlin.ir.declarations.IrFile import org.jetbrains.kotlin.ir.declarations.IrFile
@@ -52,16 +52,14 @@ import org.jetbrains.kotlin.ir.types.IrSimpleType
import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.types.IrType
import org.jetbrains.kotlin.ir.types.IrTypeArgument import org.jetbrains.kotlin.ir.types.IrTypeArgument
import org.jetbrains.kotlin.ir.types.IrTypeProjection import org.jetbrains.kotlin.ir.types.IrTypeProjection
import org.jetbrains.kotlin.ir.types.classOrNull
import org.jetbrains.kotlin.ir.types.classifierOrNull import org.jetbrains.kotlin.ir.types.classifierOrNull
import org.jetbrains.kotlin.ir.types.isBoolean import org.jetbrains.kotlin.ir.types.isBoolean
import org.jetbrains.kotlin.ir.types.isSubtypeOf import org.jetbrains.kotlin.ir.types.isSubtypeOf
import org.jetbrains.kotlin.ir.util.deepCopyWithSymbols import org.jetbrains.kotlin.ir.util.deepCopyWithSymbols
import org.jetbrains.kotlin.ir.util.functions
import org.jetbrains.kotlin.ir.util.isFunctionOrKFunction import org.jetbrains.kotlin.ir.util.isFunctionOrKFunction
import org.jetbrains.kotlin.ir.util.kotlinFqName import org.jetbrains.kotlin.ir.util.kotlinFqName
import org.jetbrains.kotlin.ir.util.patchDeclarationParents
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.util.OperatorNameConventions
class PowerAssertCallTransformer( class PowerAssertCallTransformer(
private val file: IrFile, private val file: IrFile,
@@ -159,17 +157,15 @@ class PowerAssertCallTransformer(
roots: List<Node?>, roots: List<Node?>,
original: IrCall original: IrCall
): IrExpression? { ): IrExpression? {
val lambda = messageArgument?.asSimpleLambda()
return when { return when {
messageArgument is IrConst<*> -> messageArgument messageArgument is IrConst<*> -> messageArgument
messageArgument is IrStringConcatenation -> messageArgument messageArgument is IrStringConcatenation -> messageArgument
lambda != null -> lambda.deepCopyWithSymbols(parent).inline(parent) messageArgument != null -> irBlock {
.transform(ReturnableBlockTransformer(context, scope.scopeOwnerSymbol), null) +messageArgument.deepCopyWithSymbols(parent)
messageArgument != null -> { .asInlinable(this)
val invoke = messageArgument.type.classOrNull!!.owner.functions .inline(parent)
.single { it.name == OperatorNameConventions.INVOKE } .patchDeclarationParents(scope.getLocalDeclarationParent())
irCallOp(invoke.symbol, invoke.returnType, messageArgument) }.transform(ReturnableBlockTransformer(context, scope.scopeOwnerSymbol), null)
}
// TODO what should the default message be? // TODO what should the default message be?
roots.size == 1 && original.getValueArgument(0)!!.type.isBoolean() -> irString("Assertion failed") roots.size == 1 && original.getValueArgument(0)!!.type.isBoolean() -> irString("Assertion failed")
else -> null else -> null
+1 -1
View File
@@ -1,5 +1,5 @@
plugins { plugins {
kotlin("multiplatform") version "1.5.0" kotlin("multiplatform") version "1.5.10"
id("com.bnorm.power.kotlin-power-assert") version "0.8.1" id("com.bnorm.power.kotlin-power-assert") version "0.8.1"
} }