[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/
|
||||
/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/tree-generator-common/ "Kotlin Compiler Core" "Kotlin JVM" "Kotlin JS" "Kotlin Native" "Kotlin Wasm"
|
||||
/generators/wasm/ "Kotlin Wasm"
|
||||
|
||||
/gradle/ "Kotlin Build Infrastructure"
|
||||
|
||||
@@ -10,6 +10,7 @@ runtimeOnly.extendsFrom(compileOnly)
|
||||
|
||||
dependencies {
|
||||
implementation(project(":generators"))
|
||||
implementation(project(":generators:tree-generator-common"))
|
||||
implementation(project(":core:compiler.common"))
|
||||
implementation(project(":compiler:frontend.common"))
|
||||
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.utils.DummyDelegate
|
||||
import org.jetbrains.kotlin.generators.tree.Importable
|
||||
import kotlin.properties.ReadOnlyProperty
|
||||
import kotlin.reflect.KProperty
|
||||
|
||||
|
||||
+1
@@ -6,6 +6,7 @@
|
||||
package org.jetbrains.kotlin.fir.tree.generator.context
|
||||
|
||||
import org.jetbrains.kotlin.fir.tree.generator.model.*
|
||||
import org.jetbrains.kotlin.generators.tree.Importable
|
||||
|
||||
abstract class AbstractFieldConfigurator<T : AbstractFirTreeBuilder>(private val builder: T) {
|
||||
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.printer.call
|
||||
import org.jetbrains.kotlin.fir.tree.generator.standardClassIdsType
|
||||
import org.jetbrains.kotlin.generators.tree.Importable
|
||||
|
||||
abstract class AbstractFirTreeImplementationConfigurator {
|
||||
private val elementsWithImpl = mutableSetOf<Element>()
|
||||
|
||||
+2
@@ -5,6 +5,8 @@
|
||||
|
||||
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"
|
||||
|
||||
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.typeWithArguments
|
||||
import org.jetbrains.kotlin.fir.tree.generator.util.set
|
||||
import org.jetbrains.kotlin.generators.tree.Importable
|
||||
|
||||
interface KindOwner : Importable {
|
||||
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.type
|
||||
import org.jetbrains.kotlin.fir.tree.generator.printer.typeWithArguments
|
||||
import org.jetbrains.kotlin.generators.tree.Importable
|
||||
|
||||
// ----------- Simple field -----------
|
||||
|
||||
|
||||
+1
@@ -6,6 +6,7 @@
|
||||
package org.jetbrains.kotlin.fir.tree.generator.model
|
||||
|
||||
import org.jetbrains.kotlin.fir.tree.generator.printer.typeWithArguments
|
||||
import org.jetbrains.kotlin.generators.tree.Importable
|
||||
|
||||
sealed class Field : Importable {
|
||||
abstract val name: String
|
||||
|
||||
+2
@@ -5,6 +5,8 @@
|
||||
|
||||
package org.jetbrains.kotlin.fir.tree.generator.model
|
||||
|
||||
import org.jetbrains.kotlin.generators.tree.Importable
|
||||
|
||||
class ImplementationWithArg(
|
||||
val implementation: Implementation,
|
||||
val argument: Importable?
|
||||
|
||||
+2
@@ -5,6 +5,8 @@
|
||||
|
||||
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 {
|
||||
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.Field
|
||||
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.util.get
|
||||
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.Implementation.Kind
|
||||
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.addToStdlib.ifNotEmpty
|
||||
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.Implementation.Kind
|
||||
import org.jetbrains.kotlin.fir.tree.generator.pureAbstractElementType
|
||||
import org.jetbrains.kotlin.generators.tree.Importable
|
||||
import java.io.File
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.ifNotEmpty
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ runtimeOnly.extendsFrom(compileOnly)
|
||||
|
||||
dependencies {
|
||||
implementation(project(":generators"))
|
||||
implementation(project(":generators:tree-generator-common"))
|
||||
implementation(project(":core:compiler.common"))
|
||||
implementation(project(":compiler:util"))
|
||||
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.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.fir.tree.generator.model
|
||||
package org.jetbrains.kotlin.generators.tree
|
||||
|
||||
interface Importable {
|
||||
val type: String
|
||||
@@ -191,6 +191,7 @@ include ":kotlin-imports-dumper-compiler-plugin",
|
||||
":generators",
|
||||
":generators:ide-iml-to-gradle-generator",
|
||||
":generators:test-generator",
|
||||
":generators:tree-generator-common",
|
||||
":tools:kotlinp",
|
||||
":kotlin-build-tools-enum-compat",
|
||||
":kotlin-gradle-compiler-types",
|
||||
|
||||
Reference in New Issue
Block a user