diff --git a/native/swift/sir/gen/org/jetbrains/kotlin/sir/SirImport.kt b/native/swift/sir/gen/org/jetbrains/kotlin/sir/SirImport.kt new file mode 100644 index 00000000000..663668ba6b3 --- /dev/null +++ b/native/swift/sir/gen/org/jetbrains/kotlin/sir/SirImport.kt @@ -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 accept(visitor: SirVisitor, data: D): R = + visitor.visitImport(this, data) + + @Suppress("UNCHECKED_CAST") + override fun transform(transformer: SirTransformer, data: D): E = + transformer.transformImport(this, data) as E +} diff --git a/native/swift/sir/gen/org/jetbrains/kotlin/sir/builder/SirImportBuilder.kt b/native/swift/sir/gen/org/jetbrains/kotlin/sir/builder/SirImportBuilder.kt new file mode 100644 index 00000000000..4fc5d796fae --- /dev/null +++ b/native/swift/sir/gen/org/jetbrains/kotlin/sir/builder/SirImportBuilder.kt @@ -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() +} diff --git a/native/swift/sir/gen/org/jetbrains/kotlin/sir/impl/SirImportImpl.kt b/native/swift/sir/gen/org/jetbrains/kotlin/sir/impl/SirImportImpl.kt new file mode 100644 index 00000000000..d0b310f7d72 --- /dev/null +++ b/native/swift/sir/gen/org/jetbrains/kotlin/sir/impl/SirImportImpl.kt @@ -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 acceptChildren(visitor: SirVisitor, data: D) { + } + + override fun transformChildren(transformer: SirTransformer, data: D) { + } +} diff --git a/native/swift/sir/gen/org/jetbrains/kotlin/sir/visitors/SirTransformer.kt b/native/swift/sir/gen/org/jetbrains/kotlin/sir/visitors/SirTransformer.kt index 2b9b848c827..9bdce0a9047 100644 --- a/native/swift/sir/gen/org/jetbrains/kotlin/sir/visitors/SirTransformer.kt +++ b/native/swift/sir/gen/org/jetbrains/kotlin/sir/visitors/SirTransformer.kt @@ -150,4 +150,12 @@ abstract class SirTransformer : SirVisitor() { final override fun visitForeignVariable(variable: SirForeignVariable, data: D): SirDeclaration { 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) + } } diff --git a/native/swift/sir/gen/org/jetbrains/kotlin/sir/visitors/SirTransformerVoid.kt b/native/swift/sir/gen/org/jetbrains/kotlin/sir/visitors/SirTransformerVoid.kt index 027cd1630db..cef3306bf6a 100644 --- a/native/swift/sir/gen/org/jetbrains/kotlin/sir/visitors/SirTransformerVoid.kt +++ b/native/swift/sir/gen/org/jetbrains/kotlin/sir/visitors/SirTransformerVoid.kt @@ -115,4 +115,10 @@ abstract class SirTransformerVoid : SirTransformer() { final override fun transformForeignVariable(variable: SirForeignVariable, data: Nothing?): SirDeclaration = transformForeignVariable(variable) + + open fun transformImport(import: SirImport): SirDeclaration = + transformDeclaration(import) + + final override fun transformImport(import: SirImport, data: Nothing?): SirDeclaration = + transformImport(import) } diff --git a/native/swift/sir/gen/org/jetbrains/kotlin/sir/visitors/SirVisitor.kt b/native/swift/sir/gen/org/jetbrains/kotlin/sir/visitors/SirVisitor.kt index 31bf757e235..c7b57455a6a 100644 --- a/native/swift/sir/gen/org/jetbrains/kotlin/sir/visitors/SirVisitor.kt +++ b/native/swift/sir/gen/org/jetbrains/kotlin/sir/visitors/SirVisitor.kt @@ -64,4 +64,7 @@ abstract class SirVisitor { open fun visitForeignVariable(variable: SirForeignVariable, data: D): R = visitDeclaration(variable, data) + + open fun visitImport(import: SirImport, data: D): R = + visitDeclaration(import, data) } diff --git a/native/swift/sir/gen/org/jetbrains/kotlin/sir/visitors/SirVisitorVoid.kt b/native/swift/sir/gen/org/jetbrains/kotlin/sir/visitors/SirVisitorVoid.kt index 381e9f3acb0..b59caeee0f4 100644 --- a/native/swift/sir/gen/org/jetbrains/kotlin/sir/visitors/SirVisitorVoid.kt +++ b/native/swift/sir/gen/org/jetbrains/kotlin/sir/visitors/SirVisitorVoid.kt @@ -149,4 +149,12 @@ abstract class SirVisitorVoid : SirVisitor() { open fun visitForeignVariable(variable: SirForeignVariable) { visitDeclaration(variable) } + + final override fun visitImport(import: SirImport, data: Nothing?) { + visitImport(import) + } + + open fun visitImport(import: SirImport) { + visitDeclaration(import) + } } diff --git a/native/swift/sir/tree-generator/src/org/jetbrains/kotlin/sir/tree/generator/SwiftIrTree.kt b/native/swift/sir/tree-generator/src/org/jetbrains/kotlin/sir/tree/generator/SwiftIrTree.kt index 51ad90d334b..860b80b75a2 100644 --- a/native/swift/sir/tree-generator/src/org/jetbrains/kotlin/sir/tree/generator/SwiftIrTree.kt +++ b/native/swift/sir/tree-generator/src/org/jetbrains/kotlin/sir/tree/generator/SwiftIrTree.kt @@ -142,4 +142,11 @@ object SwiftIrTree : AbstractSwiftIrTreeBuilder() { visitorParameterName = "variable" } + + val import by element { + customParentInVisitor = declaration + parent(declaration) + + +field("moduleName", string) + } }