kotlinx.atomicfu compiler plugin for JS_IR backend (#4581)

* kotlinx.atomicfu compiler plugin for JS_IR

Support transformations of atomic operations introduced by the kotlinx.atomicfu library for the JS_IR backend. Compiler plugin is applied externally by the kotlinx.atomicfu gradle plugin.

* Apply compiler plugin for JS platform only

* New plugin test structure

* testGroupOutputDirPrefix changed
This commit is contained in:
mvicsokolova
2021-12-01 22:33:13 +03:00
committed by GitHub
parent 05695761ec
commit 93561a1a55
45 changed files with 2655 additions and 4 deletions
+2
View File
@@ -65,6 +65,7 @@ dependencies {
testApi(projectTests(":plugins:lombok:lombok-compiler-plugin"))
testApi(projectTests(":kotlin-sam-with-receiver-compiler-plugin"))
testApi(projectTests(":kotlinx-serialization-compiler-plugin"))
testApi(projectTests(":kotlinx-atomicfu-compiler-plugin"))
testApi(projectTests(":plugins:fir:fir-plugin-prototype"))
testApi(projectTests(":generators:test-generator"))
testCompileOnly(project(":kotlin-reflect-api"))
@@ -73,6 +74,7 @@ dependencies {
testImplementation(projectTests(":compiler:test-infrastructure-utils"))
testImplementation(projectTests(":compiler:test-infrastructure"))
testImplementation(projectTests(":compiler:tests-common-new"))
testImplementation(projectTests(":js:js.tests"))
testApiJUnit5()
if (Ide.IJ()) {
@@ -38,6 +38,7 @@ import org.jetbrains.kotlin.test.TargetBackend
import org.jetbrains.kotlinx.serialization.AbstractSerializationIrBytecodeListingTest
import org.jetbrains.kotlinx.serialization.AbstractSerializationPluginBytecodeListingTest
import org.jetbrains.kotlinx.serialization.AbstractSerializationPluginDiagnosticTest
import org.jetbrains.kotlinx.atomicfu.AbstractAtomicfuJsIrTest
fun main(args: Array<String>) {
System.setProperty("java.awt.headless", "true")
@@ -395,5 +396,15 @@ fun main(args: Array<String>) {
model("box")
}
}
testGroup(
"plugins/atomicfu/atomicfu-compiler/test",
"plugins/atomicfu/atomicfu-compiler/testData",
testRunnerMethodName = "runTest0"
) {
testClass<AbstractAtomicfuJsIrTest> {
model("box/")
}
}
}
}