[Swift export][KT-65672] Add SIR node for import declaration
This commit is contained in:
committed by
Space Team
parent
f5b273a6d9
commit
10e4d34868
@@ -0,0 +1,29 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// This file was generated automatically. See native/swift/sir/tree-generator/Readme.md.
|
||||||
|
// DO NOT MODIFY IT MANUALLY.
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.sir
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.sir.visitors.SirTransformer
|
||||||
|
import org.jetbrains.kotlin.sir.visitors.SirVisitor
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generated from: [org.jetbrains.kotlin.sir.tree.generator.SwiftIrTree.import]
|
||||||
|
*/
|
||||||
|
abstract class SirImport : SirElementBase(), SirDeclaration {
|
||||||
|
abstract override val origin: SirOrigin
|
||||||
|
abstract override val visibility: SirVisibility
|
||||||
|
abstract override var parent: SirDeclarationParent
|
||||||
|
abstract val moduleName: String
|
||||||
|
|
||||||
|
override fun <R, D> accept(visitor: SirVisitor<R, D>, data: D): R =
|
||||||
|
visitor.visitImport(this, data)
|
||||||
|
|
||||||
|
@Suppress("UNCHECKED_CAST")
|
||||||
|
override fun <E : SirElement, D> transform(transformer: SirTransformer<D>, data: D): E =
|
||||||
|
transformer.transformImport(this, data) as E
|
||||||
|
}
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// This file was generated automatically. See native/swift/sir/tree-generator/Readme.md.
|
||||||
|
// DO NOT MODIFY IT MANUALLY.
|
||||||
|
|
||||||
|
@file:Suppress("DuplicatedCode", "unused")
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.sir.builder
|
||||||
|
|
||||||
|
import kotlin.contracts.*
|
||||||
|
import org.jetbrains.kotlin.sir.SirBuilderDsl
|
||||||
|
import org.jetbrains.kotlin.sir.SirImport
|
||||||
|
import org.jetbrains.kotlin.sir.SirOrigin
|
||||||
|
import org.jetbrains.kotlin.sir.SirVisibility
|
||||||
|
import org.jetbrains.kotlin.sir.impl.SirImportImpl
|
||||||
|
|
||||||
|
@SirBuilderDsl
|
||||||
|
class SirImportBuilder {
|
||||||
|
var origin: SirOrigin = SirOrigin.Unknown
|
||||||
|
var visibility: SirVisibility = SirVisibility.PUBLIC
|
||||||
|
lateinit var moduleName: String
|
||||||
|
|
||||||
|
fun build(): SirImport {
|
||||||
|
return SirImportImpl(
|
||||||
|
origin,
|
||||||
|
visibility,
|
||||||
|
moduleName,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@OptIn(ExperimentalContracts::class)
|
||||||
|
inline fun buildImport(init: SirImportBuilder.() -> Unit): SirImport {
|
||||||
|
contract {
|
||||||
|
callsInPlace(init, InvocationKind.EXACTLY_ONCE)
|
||||||
|
}
|
||||||
|
return SirImportBuilder().apply(init).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
@OptIn(ExperimentalContracts::class)
|
||||||
|
inline fun buildImportCopy(original: SirImport, init: SirImportBuilder.() -> Unit): SirImport {
|
||||||
|
contract {
|
||||||
|
callsInPlace(init, InvocationKind.EXACTLY_ONCE)
|
||||||
|
}
|
||||||
|
val copyBuilder = SirImportBuilder()
|
||||||
|
copyBuilder.origin = original.origin
|
||||||
|
copyBuilder.visibility = original.visibility
|
||||||
|
copyBuilder.moduleName = original.moduleName
|
||||||
|
return copyBuilder.apply(init).build()
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// This file was generated automatically. See native/swift/sir/tree-generator/Readme.md.
|
||||||
|
// DO NOT MODIFY IT MANUALLY.
|
||||||
|
|
||||||
|
@file:Suppress("DuplicatedCode", "unused")
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.sir.impl
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.sir.SirDeclarationParent
|
||||||
|
import org.jetbrains.kotlin.sir.SirImport
|
||||||
|
import org.jetbrains.kotlin.sir.SirOrigin
|
||||||
|
import org.jetbrains.kotlin.sir.SirVisibility
|
||||||
|
import org.jetbrains.kotlin.sir.visitors.SirTransformer
|
||||||
|
import org.jetbrains.kotlin.sir.visitors.SirVisitor
|
||||||
|
|
||||||
|
internal class SirImportImpl(
|
||||||
|
override val origin: SirOrigin,
|
||||||
|
override val visibility: SirVisibility,
|
||||||
|
override val moduleName: String,
|
||||||
|
) : SirImport() {
|
||||||
|
override lateinit var parent: SirDeclarationParent
|
||||||
|
|
||||||
|
override fun <R, D> acceptChildren(visitor: SirVisitor<R, D>, data: D) {
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun <D> transformChildren(transformer: SirTransformer<D>, data: D) {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -150,4 +150,12 @@ abstract class SirTransformer<in D> : SirVisitor<SirElement, D>() {
|
|||||||
final override fun visitForeignVariable(variable: SirForeignVariable, data: D): SirDeclaration {
|
final override fun visitForeignVariable(variable: SirForeignVariable, data: D): SirDeclaration {
|
||||||
return transformForeignVariable(variable, data)
|
return transformForeignVariable(variable, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
open fun transformImport(import: SirImport, data: D): SirDeclaration {
|
||||||
|
return transformDeclaration(import, data)
|
||||||
|
}
|
||||||
|
|
||||||
|
final override fun visitImport(import: SirImport, data: D): SirDeclaration {
|
||||||
|
return transformImport(import, data)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -115,4 +115,10 @@ abstract class SirTransformerVoid : SirTransformer<Nothing?>() {
|
|||||||
|
|
||||||
final override fun transformForeignVariable(variable: SirForeignVariable, data: Nothing?): SirDeclaration =
|
final override fun transformForeignVariable(variable: SirForeignVariable, data: Nothing?): SirDeclaration =
|
||||||
transformForeignVariable(variable)
|
transformForeignVariable(variable)
|
||||||
|
|
||||||
|
open fun transformImport(import: SirImport): SirDeclaration =
|
||||||
|
transformDeclaration(import)
|
||||||
|
|
||||||
|
final override fun transformImport(import: SirImport, data: Nothing?): SirDeclaration =
|
||||||
|
transformImport(import)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,4 +64,7 @@ abstract class SirVisitor<out R, in D> {
|
|||||||
|
|
||||||
open fun visitForeignVariable(variable: SirForeignVariable, data: D): R =
|
open fun visitForeignVariable(variable: SirForeignVariable, data: D): R =
|
||||||
visitDeclaration(variable, data)
|
visitDeclaration(variable, data)
|
||||||
|
|
||||||
|
open fun visitImport(import: SirImport, data: D): R =
|
||||||
|
visitDeclaration(import, data)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -149,4 +149,12 @@ abstract class SirVisitorVoid : SirVisitor<Unit, Nothing?>() {
|
|||||||
open fun visitForeignVariable(variable: SirForeignVariable) {
|
open fun visitForeignVariable(variable: SirForeignVariable) {
|
||||||
visitDeclaration(variable)
|
visitDeclaration(variable)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final override fun visitImport(import: SirImport, data: Nothing?) {
|
||||||
|
visitImport(import)
|
||||||
|
}
|
||||||
|
|
||||||
|
open fun visitImport(import: SirImport) {
|
||||||
|
visitDeclaration(import)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+7
@@ -142,4 +142,11 @@ object SwiftIrTree : AbstractSwiftIrTreeBuilder() {
|
|||||||
|
|
||||||
visitorParameterName = "variable"
|
visitorParameterName = "variable"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val import by element {
|
||||||
|
customParentInVisitor = declaration
|
||||||
|
parent(declaration)
|
||||||
|
|
||||||
|
+field("moduleName", string)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user