[FIR generator] Move Importable interface to common module
This is a step towards commonizing the code generator between FIR and IR: KT-61970
This commit is contained in:
committed by
Space Team
parent
ec9cb8beb6
commit
7a6bffaabb
@@ -242,6 +242,7 @@
|
|||||||
# UNKNOWN: /generators/protobufCompare/
|
# UNKNOWN: /generators/protobufCompare/
|
||||||
/generators/test-generator/ "Kotlin Compiler Core" "Kotlin JVM" "Kotlin JS" "Kotlin Native" "Kotlin Wasm"
|
/generators/test-generator/ "Kotlin Compiler Core" "Kotlin JVM" "Kotlin JS" "Kotlin Native" "Kotlin Wasm"
|
||||||
/generators/tests/ "Kotlin Compiler Core" "Kotlin JVM" "Kotlin JS" "Kotlin Native" "Kotlin Wasm"
|
/generators/tests/ "Kotlin Compiler Core" "Kotlin JVM" "Kotlin JS" "Kotlin Native" "Kotlin Wasm"
|
||||||
|
/generators/tree-generator-common/ "Kotlin Compiler Core" "Kotlin JVM" "Kotlin JS" "Kotlin Native" "Kotlin Wasm"
|
||||||
/generators/wasm/ "Kotlin Wasm"
|
/generators/wasm/ "Kotlin Wasm"
|
||||||
|
|
||||||
/gradle/ "Kotlin Build Infrastructure"
|
/gradle/ "Kotlin Build Infrastructure"
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ runtimeOnly.extendsFrom(compileOnly)
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(project(":generators"))
|
implementation(project(":generators"))
|
||||||
|
implementation(project(":generators:tree-generator-common"))
|
||||||
implementation(project(":core:compiler.common"))
|
implementation(project(":core:compiler.common"))
|
||||||
implementation(project(":compiler:frontend.common"))
|
implementation(project(":compiler:frontend.common"))
|
||||||
implementation(project(":compiler:fir:cones"))
|
implementation(project(":compiler:fir:cones"))
|
||||||
|
|||||||
+1
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.tree.generator.context
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.fir.tree.generator.model.*
|
import org.jetbrains.kotlin.fir.tree.generator.model.*
|
||||||
import org.jetbrains.kotlin.utils.DummyDelegate
|
import org.jetbrains.kotlin.utils.DummyDelegate
|
||||||
|
import org.jetbrains.kotlin.generators.tree.Importable
|
||||||
import kotlin.properties.ReadOnlyProperty
|
import kotlin.properties.ReadOnlyProperty
|
||||||
import kotlin.reflect.KProperty
|
import kotlin.reflect.KProperty
|
||||||
|
|
||||||
|
|||||||
+1
@@ -6,6 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.fir.tree.generator.context
|
package org.jetbrains.kotlin.fir.tree.generator.context
|
||||||
|
|
||||||
import org.jetbrains.kotlin.fir.tree.generator.model.*
|
import org.jetbrains.kotlin.fir.tree.generator.model.*
|
||||||
|
import org.jetbrains.kotlin.generators.tree.Importable
|
||||||
|
|
||||||
abstract class AbstractFieldConfigurator<T : AbstractFirTreeBuilder>(private val builder: T) {
|
abstract class AbstractFieldConfigurator<T : AbstractFirTreeBuilder>(private val builder: T) {
|
||||||
inner class ConfigureContext(val element: Element) {
|
inner class ConfigureContext(val element: Element) {
|
||||||
|
|||||||
+1
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.fir.tree.generator.constructClassLikeTypeImport
|
|||||||
import org.jetbrains.kotlin.fir.tree.generator.model.*
|
import org.jetbrains.kotlin.fir.tree.generator.model.*
|
||||||
import org.jetbrains.kotlin.fir.tree.generator.printer.call
|
import org.jetbrains.kotlin.fir.tree.generator.printer.call
|
||||||
import org.jetbrains.kotlin.fir.tree.generator.standardClassIdsType
|
import org.jetbrains.kotlin.fir.tree.generator.standardClassIdsType
|
||||||
|
import org.jetbrains.kotlin.generators.tree.Importable
|
||||||
|
|
||||||
abstract class AbstractFirTreeImplementationConfigurator {
|
abstract class AbstractFirTreeImplementationConfigurator {
|
||||||
private val elementsWithImpl = mutableSetOf<Element>()
|
private val elementsWithImpl = mutableSetOf<Element>()
|
||||||
|
|||||||
+2
@@ -5,6 +5,8 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.fir.tree.generator.model
|
package org.jetbrains.kotlin.fir.tree.generator.model
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.generators.tree.Importable
|
||||||
|
|
||||||
private const val DEFAULT_BUILDER_PACKAGE = "org.jetbrains.kotlin.fir.tree.builder"
|
private const val DEFAULT_BUILDER_PACKAGE = "org.jetbrains.kotlin.fir.tree.builder"
|
||||||
|
|
||||||
sealed class Builder : FieldContainer, Importable {
|
sealed class Builder : FieldContainer, Importable {
|
||||||
|
|||||||
+1
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.fir.tree.generator.model
|
|||||||
import org.jetbrains.kotlin.fir.tree.generator.printer.BASE_PACKAGE
|
import org.jetbrains.kotlin.fir.tree.generator.printer.BASE_PACKAGE
|
||||||
import org.jetbrains.kotlin.fir.tree.generator.printer.typeWithArguments
|
import org.jetbrains.kotlin.fir.tree.generator.printer.typeWithArguments
|
||||||
import org.jetbrains.kotlin.fir.tree.generator.util.set
|
import org.jetbrains.kotlin.fir.tree.generator.util.set
|
||||||
|
import org.jetbrains.kotlin.generators.tree.Importable
|
||||||
|
|
||||||
interface KindOwner : Importable {
|
interface KindOwner : Importable {
|
||||||
var kind: Implementation.Kind?
|
var kind: Implementation.Kind?
|
||||||
|
|||||||
+1
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.fir.tree.generator.model
|
|||||||
import org.jetbrains.kotlin.fir.tree.generator.context.AbstractFirTreeBuilder
|
import org.jetbrains.kotlin.fir.tree.generator.context.AbstractFirTreeBuilder
|
||||||
import org.jetbrains.kotlin.fir.tree.generator.context.type
|
import org.jetbrains.kotlin.fir.tree.generator.context.type
|
||||||
import org.jetbrains.kotlin.fir.tree.generator.printer.typeWithArguments
|
import org.jetbrains.kotlin.fir.tree.generator.printer.typeWithArguments
|
||||||
|
import org.jetbrains.kotlin.generators.tree.Importable
|
||||||
|
|
||||||
// ----------- Simple field -----------
|
// ----------- Simple field -----------
|
||||||
|
|
||||||
|
|||||||
+1
@@ -6,6 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.fir.tree.generator.model
|
package org.jetbrains.kotlin.fir.tree.generator.model
|
||||||
|
|
||||||
import org.jetbrains.kotlin.fir.tree.generator.printer.typeWithArguments
|
import org.jetbrains.kotlin.fir.tree.generator.printer.typeWithArguments
|
||||||
|
import org.jetbrains.kotlin.generators.tree.Importable
|
||||||
|
|
||||||
sealed class Field : Importable {
|
sealed class Field : Importable {
|
||||||
abstract val name: String
|
abstract val name: String
|
||||||
|
|||||||
+2
@@ -5,6 +5,8 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.fir.tree.generator.model
|
package org.jetbrains.kotlin.fir.tree.generator.model
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.generators.tree.Importable
|
||||||
|
|
||||||
class ImplementationWithArg(
|
class ImplementationWithArg(
|
||||||
val implementation: Implementation,
|
val implementation: Implementation,
|
||||||
val argument: Importable?
|
val argument: Importable?
|
||||||
|
|||||||
+2
@@ -5,6 +5,8 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.fir.tree.generator.model
|
package org.jetbrains.kotlin.fir.tree.generator.model
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.generators.tree.Importable
|
||||||
|
|
||||||
data class Type(override val packageName: String?, override val type: String, val firType: Boolean = false) : Importable {
|
data class Type(override val packageName: String?, override val type: String, val firType: Boolean = false) : Importable {
|
||||||
val arguments = mutableListOf<String>()
|
val arguments = mutableListOf<String>()
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -9,7 +9,7 @@ import org.jetbrains.kotlin.fir.tree.generator.context.AbstractFirTreeBuilder
|
|||||||
import org.jetbrains.kotlin.fir.tree.generator.model.Element
|
import org.jetbrains.kotlin.fir.tree.generator.model.Element
|
||||||
import org.jetbrains.kotlin.fir.tree.generator.model.Field
|
import org.jetbrains.kotlin.fir.tree.generator.model.Field
|
||||||
import org.jetbrains.kotlin.fir.tree.generator.model.Implementation.Kind
|
import org.jetbrains.kotlin.fir.tree.generator.model.Implementation.Kind
|
||||||
import org.jetbrains.kotlin.fir.tree.generator.model.Importable
|
import org.jetbrains.kotlin.generators.tree.Importable
|
||||||
import org.jetbrains.kotlin.fir.tree.generator.pureAbstractElementType
|
import org.jetbrains.kotlin.fir.tree.generator.pureAbstractElementType
|
||||||
import org.jetbrains.kotlin.fir.tree.generator.util.get
|
import org.jetbrains.kotlin.fir.tree.generator.util.get
|
||||||
import org.jetbrains.kotlin.utils.SmartPrinter
|
import org.jetbrains.kotlin.utils.SmartPrinter
|
||||||
|
|||||||
+1
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.fir.tree.generator.printer
|
|||||||
import org.jetbrains.kotlin.fir.tree.generator.model.*
|
import org.jetbrains.kotlin.fir.tree.generator.model.*
|
||||||
import org.jetbrains.kotlin.fir.tree.generator.model.Implementation.Kind
|
import org.jetbrains.kotlin.fir.tree.generator.model.Implementation.Kind
|
||||||
import org.jetbrains.kotlin.fir.tree.generator.pureAbstractElementType
|
import org.jetbrains.kotlin.fir.tree.generator.pureAbstractElementType
|
||||||
|
import org.jetbrains.kotlin.generators.tree.Importable
|
||||||
import org.jetbrains.kotlin.utils.SmartPrinter
|
import org.jetbrains.kotlin.utils.SmartPrinter
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.ifNotEmpty
|
import org.jetbrains.kotlin.utils.addToStdlib.ifNotEmpty
|
||||||
import org.jetbrains.kotlin.utils.withIndent
|
import org.jetbrains.kotlin.utils.withIndent
|
||||||
|
|||||||
+1
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.fir.tree.generator.firImplementationDetailType
|
|||||||
import org.jetbrains.kotlin.fir.tree.generator.model.*
|
import org.jetbrains.kotlin.fir.tree.generator.model.*
|
||||||
import org.jetbrains.kotlin.fir.tree.generator.model.Implementation.Kind
|
import org.jetbrains.kotlin.fir.tree.generator.model.Implementation.Kind
|
||||||
import org.jetbrains.kotlin.fir.tree.generator.pureAbstractElementType
|
import org.jetbrains.kotlin.fir.tree.generator.pureAbstractElementType
|
||||||
|
import org.jetbrains.kotlin.generators.tree.Importable
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.ifNotEmpty
|
import org.jetbrains.kotlin.utils.addToStdlib.ifNotEmpty
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ runtimeOnly.extendsFrom(compileOnly)
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(project(":generators"))
|
implementation(project(":generators"))
|
||||||
|
implementation(project(":generators:tree-generator-common"))
|
||||||
implementation(project(":core:compiler.common"))
|
implementation(project(":core:compiler.common"))
|
||||||
implementation(project(":compiler:util"))
|
implementation(project(":compiler:util"))
|
||||||
implementation("com.squareup:kotlinpoet:1.11.0")
|
implementation("com.squareup:kotlinpoet:1.11.0")
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
## Common code for the FIR and IR tree generators
|
||||||
|
|
||||||
|
The [FIR](../../compiler/fir/tree/tree-generator) and [IR](../../compiler/ir/ir.tree/tree-generator) tree generators, although quite
|
||||||
|
different, share some common logic. This logic is stored here in this module.
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
plugins {
|
||||||
|
kotlin("jvm")
|
||||||
|
id("jps-compatible")
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
implementation(project(":core:compiler.common"))
|
||||||
|
}
|
||||||
|
|
||||||
|
sourceSets {
|
||||||
|
"main" {
|
||||||
|
projectDefault()
|
||||||
|
}
|
||||||
|
"test" {}
|
||||||
|
}
|
||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.fir.tree.generator.model
|
package org.jetbrains.kotlin.generators.tree
|
||||||
|
|
||||||
interface Importable {
|
interface Importable {
|
||||||
val type: String
|
val type: String
|
||||||
@@ -191,6 +191,7 @@ include ":kotlin-imports-dumper-compiler-plugin",
|
|||||||
":generators",
|
":generators",
|
||||||
":generators:ide-iml-to-gradle-generator",
|
":generators:ide-iml-to-gradle-generator",
|
||||||
":generators:test-generator",
|
":generators:test-generator",
|
||||||
|
":generators:tree-generator-common",
|
||||||
":tools:kotlinp",
|
":tools:kotlinp",
|
||||||
":kotlin-build-tools-enum-compat",
|
":kotlin-build-tools-enum-compat",
|
||||||
":kotlin-gradle-compiler-types",
|
":kotlin-gradle-compiler-types",
|
||||||
|
|||||||
Reference in New Issue
Block a user