+1
-1
@@ -1,5 +1,5 @@
|
|||||||
plugins {
|
plugins {
|
||||||
kotlin("jvm") version "1.5.20" apply false
|
kotlin("jvm") version "1.6.0" 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
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ plugins {
|
|||||||
dependencies {
|
dependencies {
|
||||||
compileOnly("org.jetbrains.kotlin:kotlin-compiler")
|
compileOnly("org.jetbrains.kotlin:kotlin-compiler")
|
||||||
|
|
||||||
kapt("com.google.auto.service:auto-service:1.0-rc6")
|
kapt("com.google.auto.service:auto-service:1.0.1")
|
||||||
compileOnly("com.google.auto.service:auto-service-annotations:1.0-rc6")
|
compileOnly("com.google.auto.service:auto-service-annotations:1.0.1")
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.named("compileKotlin") { dependsOn("syncSource") }
|
tasks.named("compileKotlin") { dependsOn("syncSource") }
|
||||||
|
|||||||
@@ -12,12 +12,12 @@ plugins {
|
|||||||
dependencies {
|
dependencies {
|
||||||
compileOnly("org.jetbrains.kotlin:kotlin-compiler-embeddable")
|
compileOnly("org.jetbrains.kotlin:kotlin-compiler-embeddable")
|
||||||
|
|
||||||
kapt("com.google.auto.service:auto-service:1.0-rc6")
|
kapt("com.google.auto.service:auto-service:1.0.1")
|
||||||
compileOnly("com.google.auto.service:auto-service-annotations:1.0-rc6")
|
compileOnly("com.google.auto.service:auto-service-annotations:1.0.1")
|
||||||
|
|
||||||
testImplementation(kotlin("test-junit"))
|
testImplementation(kotlin("test-junit"))
|
||||||
testImplementation("org.jetbrains.kotlin:kotlin-compiler-embeddable")
|
testImplementation("org.jetbrains.kotlin:kotlin-compiler-embeddable")
|
||||||
testImplementation("com.github.tschuchortdev:kotlin-compile-testing:1.2.6")
|
testImplementation("com.github.tschuchortdev:kotlin-compile-testing:1.4.6")
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.withType<KotlinCompile> {
|
tasks.withType<KotlinCompile> {
|
||||||
|
|||||||
+6
-3
@@ -52,6 +52,7 @@ 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.IrTypeSystemContextImpl
|
||||||
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
|
||||||
@@ -68,6 +69,8 @@ class PowerAssertCallTransformer(
|
|||||||
private val messageCollector: MessageCollector,
|
private val messageCollector: MessageCollector,
|
||||||
private val functions: Set<FqName>
|
private val functions: Set<FqName>
|
||||||
) : IrElementTransformerVoidWithContext() {
|
) : IrElementTransformerVoidWithContext() {
|
||||||
|
private val irTypeSystemContext = IrTypeSystemContextImpl(context.irBuiltIns)
|
||||||
|
|
||||||
override fun visitCall(expression: IrCall): IrExpression {
|
override fun visitCall(expression: IrCall): IrExpression {
|
||||||
val function = expression.symbol.owner
|
val function = expression.symbol.owner
|
||||||
val fqName = function.kotlinFqName
|
val fqName = function.kotlinFqName
|
||||||
@@ -200,12 +203,12 @@ class PowerAssertCallTransformer(
|
|||||||
argument is IrTypeProjection && isStringSupertype(argument.type)
|
argument is IrTypeProjection && isStringSupertype(argument.type)
|
||||||
|
|
||||||
private fun isStringSupertype(type: IrType): Boolean =
|
private fun isStringSupertype(type: IrType): Boolean =
|
||||||
context.irBuiltIns.stringType.isSubtypeOf(type, context.irBuiltIns)
|
context.irBuiltIns.stringType.isSubtypeOf(type, irTypeSystemContext)
|
||||||
|
|
||||||
private fun IrType.isAssignableTo(type: IrType): Boolean {
|
private fun IrType.isAssignableTo(type: IrType): Boolean {
|
||||||
if (isSubtypeOf(type, context.irBuiltIns)) return true
|
if (isSubtypeOf(type, irTypeSystemContext)) return true
|
||||||
val superTypes = (type.classifierOrNull as? IrTypeParameterSymbol)?.owner?.superTypes
|
val superTypes = (type.classifierOrNull as? IrTypeParameterSymbol)?.owner?.superTypes
|
||||||
return superTypes != null && superTypes.all { isSubtypeOf(it, context.irBuiltIns) }
|
return superTypes != null && superTypes.all { isSubtypeOf(it, irTypeSystemContext) }
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun MessageCollector.info(expression: IrElement, message: String) {
|
private fun MessageCollector.info(expression: IrElement, message: String) {
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
package com.bnorm.power.diagram
|
package com.bnorm.power.diagram
|
||||||
|
|
||||||
import com.bnorm.power.irString
|
import com.bnorm.power.irString
|
||||||
|
import org.jetbrains.kotlin.ir.IrBuiltIns
|
||||||
import org.jetbrains.kotlin.ir.IrElement
|
import org.jetbrains.kotlin.ir.IrElement
|
||||||
import org.jetbrains.kotlin.ir.SourceRangeInfo
|
import org.jetbrains.kotlin.ir.SourceRangeInfo
|
||||||
import org.jetbrains.kotlin.ir.builders.IrBuilderWithScope
|
import org.jetbrains.kotlin.ir.builders.IrBuilderWithScope
|
||||||
@@ -25,7 +26,6 @@ import org.jetbrains.kotlin.ir.builders.irGet
|
|||||||
import org.jetbrains.kotlin.ir.declarations.IrFile
|
import org.jetbrains.kotlin.ir.declarations.IrFile
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction
|
import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrVariable
|
import org.jetbrains.kotlin.ir.declarations.IrVariable
|
||||||
import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns
|
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrConst
|
import org.jetbrains.kotlin.ir.expressions.IrConst
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrConstKind
|
import org.jetbrains.kotlin.ir.expressions.IrConstKind
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
plugins {
|
plugins {
|
||||||
kotlin("multiplatform") version "1.5.20"
|
kotlin("multiplatform") version "1.6.0"
|
||||||
id("com.bnorm.power.kotlin-power-assert") version "0.10.0"
|
id("com.bnorm.power.kotlin-power-assert") version "0.10.0"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user