[Swift Export] KT-65008: support simple top-level properties
Merge-request: KT-MR-14131 Merged-by: Gleb Lukianets <Gleb.Lukianets@jetbrains.com>
This commit is contained in:
committed by
Space Team
parent
ad5ee28d58
commit
f262247b2b
@@ -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.accessor]
|
||||
*/
|
||||
sealed class SirAccessor : SirNativeCallable() {
|
||||
abstract override val origin: SirOrigin
|
||||
abstract override val visibility: SirVisibility
|
||||
abstract override var parent: SirDeclarationParent
|
||||
abstract var body: SirFunctionBody?
|
||||
|
||||
override fun <R, D> accept(visitor: SirVisitor<R, D>, data: D): R =
|
||||
visitor.visitAccessor(this, data)
|
||||
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
override fun <E : SirElement, D> transform(transformer: SirTransformer<D>, data: D): E =
|
||||
transformer.transformAccessor(this, data) as E
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
/*
|
||||
* 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.foreignVariable]
|
||||
*/
|
||||
abstract class SirForeignVariable : SirForeignDeclaration() {
|
||||
abstract override val origin: SirOrigin
|
||||
abstract override val visibility: SirVisibility
|
||||
abstract override var parent: SirDeclarationParent
|
||||
|
||||
override fun <R, D> accept(visitor: SirVisitor<R, D>, data: D): R =
|
||||
visitor.visitForeignVariable(this, data)
|
||||
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
override fun <E : SirElement, D> transform(transformer: SirTransformer<D>, data: D): E =
|
||||
transformer.transformForeignVariable(this, data) as E
|
||||
}
|
||||
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.sir.visitors.SirVisitor
|
||||
/**
|
||||
* Generated from: [org.jetbrains.kotlin.sir.tree.generator.SwiftIrTree.function]
|
||||
*/
|
||||
abstract class SirFunction : SirElementBase(), SirCallable {
|
||||
abstract class SirFunction : SirNativeCallable() {
|
||||
abstract override val origin: SirOrigin
|
||||
abstract override val visibility: SirVisibility
|
||||
abstract override var parent: SirDeclarationParent
|
||||
|
||||
@@ -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.getter]
|
||||
*/
|
||||
abstract class SirGetter : SirAccessor() {
|
||||
abstract override val origin: SirOrigin
|
||||
abstract override val visibility: SirVisibility
|
||||
abstract override var parent: SirDeclarationParent
|
||||
abstract override var body: SirFunctionBody?
|
||||
|
||||
override fun <R, D> accept(visitor: SirVisitor<R, D>, data: D): R =
|
||||
visitor.visitGetter(this, data)
|
||||
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
override fun <E : SirElement, D> transform(transformer: SirTransformer<D>, data: D): E =
|
||||
transformer.transformGetter(this, data) as E
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
/*
|
||||
* 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.nativeCallable]
|
||||
*/
|
||||
sealed class SirNativeCallable : SirElementBase(), SirCallable {
|
||||
abstract override val origin: SirOrigin
|
||||
abstract override val visibility: SirVisibility
|
||||
abstract override var parent: SirDeclarationParent
|
||||
|
||||
override fun <R, D> accept(visitor: SirVisitor<R, D>, data: D): R =
|
||||
visitor.visitNativeCallable(this, data)
|
||||
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
override fun <E : SirElement, D> transform(transformer: SirTransformer<D>, data: D): E =
|
||||
transformer.transformNativeCallable(this, data) as E
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
/*
|
||||
* 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.setter]
|
||||
*/
|
||||
abstract class SirSetter : SirAccessor() {
|
||||
abstract override val origin: SirOrigin
|
||||
abstract override val visibility: SirVisibility
|
||||
abstract override var parent: SirDeclarationParent
|
||||
abstract override var body: SirFunctionBody?
|
||||
abstract val parameterName: String
|
||||
|
||||
override fun <R, D> accept(visitor: SirVisitor<R, D>, data: D): R =
|
||||
visitor.visitSetter(this, data)
|
||||
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
override fun <E : SirElement, D> transform(transformer: SirTransformer<D>, data: D): E =
|
||||
transformer.transformSetter(this, data) as E
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
* 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.variable]
|
||||
*/
|
||||
abstract class SirVariable : SirDeclarationParent(), SirDeclaration {
|
||||
abstract override val origin: SirOrigin
|
||||
abstract override val visibility: SirVisibility
|
||||
abstract override var parent: SirDeclarationParent
|
||||
abstract val name: String
|
||||
abstract val type: SirType
|
||||
abstract val getter: SirGetter
|
||||
abstract val setter: SirSetter?
|
||||
abstract val isStatic: Boolean
|
||||
|
||||
override fun <R, D> accept(visitor: SirVisitor<R, D>, data: D): R =
|
||||
visitor.visitVariable(this, data)
|
||||
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
override fun <E : SirElement, D> transform(transformer: SirTransformer<D>, data: D): E =
|
||||
transformer.transformVariable(this, data) as E
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
* 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.SirForeignVariable
|
||||
import org.jetbrains.kotlin.sir.SirOrigin
|
||||
import org.jetbrains.kotlin.sir.SirVisibility
|
||||
import org.jetbrains.kotlin.sir.impl.SirForeignVariableImpl
|
||||
|
||||
@SirBuilderDsl
|
||||
class SirForeignVariableBuilder {
|
||||
var origin: SirOrigin = SirOrigin.Unknown
|
||||
var visibility: SirVisibility = SirVisibility.PUBLIC
|
||||
|
||||
fun build(): SirForeignVariable {
|
||||
return SirForeignVariableImpl(
|
||||
origin,
|
||||
visibility,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalContracts::class)
|
||||
inline fun buildForeignVariable(init: SirForeignVariableBuilder.() -> Unit = {}): SirForeignVariable {
|
||||
contract {
|
||||
callsInPlace(init, InvocationKind.EXACTLY_ONCE)
|
||||
}
|
||||
return SirForeignVariableBuilder().apply(init).build()
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalContracts::class)
|
||||
inline fun buildForeignVariableCopy(original: SirForeignVariable, init: SirForeignVariableBuilder.() -> Unit = {}): SirForeignVariable {
|
||||
contract {
|
||||
callsInPlace(init, InvocationKind.EXACTLY_ONCE)
|
||||
}
|
||||
val copyBuilder = SirForeignVariableBuilder()
|
||||
copyBuilder.origin = original.origin
|
||||
copyBuilder.visibility = original.visibility
|
||||
return copyBuilder.apply(init).build()
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
* 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.*
|
||||
import org.jetbrains.kotlin.sir.impl.SirGetterImpl
|
||||
|
||||
@SirBuilderDsl
|
||||
class SirGetterBuilder {
|
||||
var origin: SirOrigin = SirOrigin.Unknown
|
||||
var visibility: SirVisibility = SirVisibility.PUBLIC
|
||||
var body: SirFunctionBody? = null
|
||||
|
||||
fun build(): SirGetter {
|
||||
return SirGetterImpl(
|
||||
origin,
|
||||
visibility,
|
||||
body,
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalContracts::class)
|
||||
inline fun buildGetter(init: SirGetterBuilder.() -> Unit = {}): SirGetter {
|
||||
contract {
|
||||
callsInPlace(init, InvocationKind.EXACTLY_ONCE)
|
||||
}
|
||||
return SirGetterBuilder().apply(init).build()
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalContracts::class)
|
||||
inline fun buildGetterCopy(original: SirGetter, init: SirGetterBuilder.() -> Unit = {}): SirGetter {
|
||||
contract {
|
||||
callsInPlace(init, InvocationKind.EXACTLY_ONCE)
|
||||
}
|
||||
val copyBuilder = SirGetterBuilder()
|
||||
copyBuilder.origin = original.origin
|
||||
copyBuilder.visibility = original.visibility
|
||||
copyBuilder.body = original.body
|
||||
return copyBuilder.apply(init).build()
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
/*
|
||||
* 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.*
|
||||
import org.jetbrains.kotlin.sir.impl.SirSetterImpl
|
||||
|
||||
@SirBuilderDsl
|
||||
class SirSetterBuilder {
|
||||
var origin: SirOrigin = SirOrigin.Unknown
|
||||
var visibility: SirVisibility = SirVisibility.PUBLIC
|
||||
var body: SirFunctionBody? = null
|
||||
var parameterName: String = "newValue"
|
||||
|
||||
fun build(): SirSetter {
|
||||
return SirSetterImpl(
|
||||
origin,
|
||||
visibility,
|
||||
body,
|
||||
parameterName,
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalContracts::class)
|
||||
inline fun buildSetter(init: SirSetterBuilder.() -> Unit = {}): SirSetter {
|
||||
contract {
|
||||
callsInPlace(init, InvocationKind.EXACTLY_ONCE)
|
||||
}
|
||||
return SirSetterBuilder().apply(init).build()
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalContracts::class)
|
||||
inline fun buildSetterCopy(original: SirSetter, init: SirSetterBuilder.() -> Unit = {}): SirSetter {
|
||||
contract {
|
||||
callsInPlace(init, InvocationKind.EXACTLY_ONCE)
|
||||
}
|
||||
val copyBuilder = SirSetterBuilder()
|
||||
copyBuilder.origin = original.origin
|
||||
copyBuilder.visibility = original.visibility
|
||||
copyBuilder.body = original.body
|
||||
copyBuilder.parameterName = original.parameterName
|
||||
return copyBuilder.apply(init).build()
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
/*
|
||||
* 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.*
|
||||
import org.jetbrains.kotlin.sir.impl.SirVariableImpl
|
||||
|
||||
@SirBuilderDsl
|
||||
class SirVariableBuilder {
|
||||
var origin: SirOrigin = SirOrigin.Unknown
|
||||
var visibility: SirVisibility = SirVisibility.PUBLIC
|
||||
lateinit var name: String
|
||||
lateinit var type: SirType
|
||||
lateinit var getter: SirGetter
|
||||
var setter: SirSetter? = null
|
||||
var isStatic: Boolean by kotlin.properties.Delegates.notNull<Boolean>()
|
||||
|
||||
fun build(): SirVariable {
|
||||
return SirVariableImpl(
|
||||
origin,
|
||||
visibility,
|
||||
name,
|
||||
type,
|
||||
getter,
|
||||
setter,
|
||||
isStatic,
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalContracts::class)
|
||||
inline fun buildVariable(init: SirVariableBuilder.() -> Unit): SirVariable {
|
||||
contract {
|
||||
callsInPlace(init, InvocationKind.EXACTLY_ONCE)
|
||||
}
|
||||
return SirVariableBuilder().apply(init).build()
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalContracts::class)
|
||||
inline fun buildVariableCopy(original: SirVariable, init: SirVariableBuilder.() -> Unit): SirVariable {
|
||||
contract {
|
||||
callsInPlace(init, InvocationKind.EXACTLY_ONCE)
|
||||
}
|
||||
val copyBuilder = SirVariableBuilder()
|
||||
copyBuilder.origin = original.origin
|
||||
copyBuilder.visibility = original.visibility
|
||||
copyBuilder.name = original.name
|
||||
copyBuilder.type = original.type
|
||||
copyBuilder.getter = original.getter
|
||||
copyBuilder.setter = original.setter
|
||||
copyBuilder.isStatic = original.isStatic
|
||||
return copyBuilder.apply(init).build()
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* 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.SirForeignVariable
|
||||
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 SirForeignVariableImpl(
|
||||
override val origin: SirOrigin,
|
||||
override val visibility: SirVisibility,
|
||||
) : SirForeignVariable() {
|
||||
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) {
|
||||
}
|
||||
}
|
||||
@@ -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.
|
||||
|
||||
@file:Suppress("DuplicatedCode", "unused")
|
||||
|
||||
package org.jetbrains.kotlin.sir.impl
|
||||
|
||||
import org.jetbrains.kotlin.sir.*
|
||||
import org.jetbrains.kotlin.sir.visitors.SirTransformer
|
||||
import org.jetbrains.kotlin.sir.visitors.SirVisitor
|
||||
|
||||
internal class SirGetterImpl(
|
||||
override val origin: SirOrigin,
|
||||
override val visibility: SirVisibility,
|
||||
override var body: SirFunctionBody?,
|
||||
) : SirGetter() {
|
||||
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) {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
/*
|
||||
* 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.*
|
||||
import org.jetbrains.kotlin.sir.visitors.SirTransformer
|
||||
import org.jetbrains.kotlin.sir.visitors.SirVisitor
|
||||
|
||||
internal class SirSetterImpl(
|
||||
override val origin: SirOrigin,
|
||||
override val visibility: SirVisibility,
|
||||
override var body: SirFunctionBody?,
|
||||
override val parameterName: String,
|
||||
) : SirSetter() {
|
||||
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) {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
/*
|
||||
* 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.*
|
||||
import org.jetbrains.kotlin.sir.visitors.SirTransformer
|
||||
import org.jetbrains.kotlin.sir.visitors.SirVisitor
|
||||
|
||||
internal class SirVariableImpl(
|
||||
override val origin: SirOrigin,
|
||||
override val visibility: SirVisibility,
|
||||
override val name: String,
|
||||
override val type: SirType,
|
||||
override val getter: SirGetter,
|
||||
override val setter: SirSetter?,
|
||||
override val isStatic: Boolean,
|
||||
) : SirVariable() {
|
||||
override lateinit var parent: SirDeclarationParent
|
||||
|
||||
override fun <R, D> acceptChildren(visitor: SirVisitor<R, D>, data: D) {
|
||||
getter.accept(visitor, data)
|
||||
setter?.accept(visitor, data)
|
||||
}
|
||||
|
||||
override fun <D> transformChildren(transformer: SirTransformer<D>, data: D) {
|
||||
}
|
||||
}
|
||||
@@ -87,6 +87,14 @@ abstract class SirTransformer<in D> : SirVisitor<SirElement, D>() {
|
||||
return transformCallable(callable, data)
|
||||
}
|
||||
|
||||
open fun transformNativeCallable(nativeCallable: SirNativeCallable, data: D): SirDeclaration {
|
||||
return transformCallable(nativeCallable, data)
|
||||
}
|
||||
|
||||
final override fun visitNativeCallable(nativeCallable: SirNativeCallable, data: D): SirDeclaration {
|
||||
return transformNativeCallable(nativeCallable, data)
|
||||
}
|
||||
|
||||
open fun transformFunction(function: SirFunction, data: D): SirDeclaration {
|
||||
return transformCallable(function, data)
|
||||
}
|
||||
@@ -102,4 +110,44 @@ abstract class SirTransformer<in D> : SirVisitor<SirElement, D>() {
|
||||
final override fun visitForeignFunction(function: SirForeignFunction, data: D): SirDeclaration {
|
||||
return transformForeignFunction(function, data)
|
||||
}
|
||||
|
||||
open fun transformAccessor(accessor: SirAccessor, data: D): SirDeclaration {
|
||||
return transformCallable(accessor, data)
|
||||
}
|
||||
|
||||
final override fun visitAccessor(accessor: SirAccessor, data: D): SirDeclaration {
|
||||
return transformAccessor(accessor, data)
|
||||
}
|
||||
|
||||
open fun transformGetter(getter: SirGetter, data: D): SirDeclaration {
|
||||
return transformAccessor(getter, data)
|
||||
}
|
||||
|
||||
final override fun visitGetter(getter: SirGetter, data: D): SirDeclaration {
|
||||
return transformGetter(getter, data)
|
||||
}
|
||||
|
||||
open fun transformSetter(setter: SirSetter, data: D): SirDeclaration {
|
||||
return transformAccessor(setter, data)
|
||||
}
|
||||
|
||||
final override fun visitSetter(setter: SirSetter, data: D): SirDeclaration {
|
||||
return transformSetter(setter, data)
|
||||
}
|
||||
|
||||
open fun transformVariable(variable: SirVariable, data: D): SirDeclaration {
|
||||
return transformDeclaration(variable, data)
|
||||
}
|
||||
|
||||
final override fun visitVariable(variable: SirVariable, data: D): SirDeclaration {
|
||||
return transformVariable(variable, data)
|
||||
}
|
||||
|
||||
open fun transformForeignVariable(foreignVariable: SirForeignVariable, data: D): SirDeclaration {
|
||||
return transformDeclaration(foreignVariable, data)
|
||||
}
|
||||
|
||||
final override fun visitForeignVariable(variable: SirForeignVariable, data: D): SirDeclaration {
|
||||
return transformForeignVariable(variable, data)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -68,6 +68,12 @@ abstract class SirTransformerVoid : SirTransformer<Nothing?>() {
|
||||
final override fun transformCallable(callable: SirCallable, data: Nothing?): SirDeclaration =
|
||||
transformCallable(callable)
|
||||
|
||||
open fun transformNativeCallable(nativeCallable: SirNativeCallable): SirDeclaration =
|
||||
transformCallable(nativeCallable)
|
||||
|
||||
final override fun transformNativeCallable(nativeCallable: SirNativeCallable, data: Nothing?): SirDeclaration =
|
||||
transformNativeCallable(nativeCallable)
|
||||
|
||||
open fun transformFunction(function: SirFunction): SirDeclaration =
|
||||
transformCallable(function)
|
||||
|
||||
@@ -79,4 +85,34 @@ abstract class SirTransformerVoid : SirTransformer<Nothing?>() {
|
||||
|
||||
final override fun transformForeignFunction(function: SirForeignFunction, data: Nothing?): SirDeclaration =
|
||||
transformForeignFunction(function)
|
||||
|
||||
open fun transformAccessor(accessor: SirAccessor): SirDeclaration =
|
||||
transformCallable(accessor)
|
||||
|
||||
final override fun transformAccessor(accessor: SirAccessor, data: Nothing?): SirDeclaration =
|
||||
transformAccessor(accessor)
|
||||
|
||||
open fun transformGetter(getter: SirGetter): SirDeclaration =
|
||||
transformAccessor(getter)
|
||||
|
||||
final override fun transformGetter(getter: SirGetter, data: Nothing?): SirDeclaration =
|
||||
transformGetter(getter)
|
||||
|
||||
open fun transformSetter(setter: SirSetter): SirDeclaration =
|
||||
transformAccessor(setter)
|
||||
|
||||
final override fun transformSetter(setter: SirSetter, data: Nothing?): SirDeclaration =
|
||||
transformSetter(setter)
|
||||
|
||||
open fun transformVariable(variable: SirVariable): SirDeclaration =
|
||||
transformDeclaration(variable)
|
||||
|
||||
final override fun transformVariable(variable: SirVariable, data: Nothing?): SirDeclaration =
|
||||
transformVariable(variable)
|
||||
|
||||
open fun transformForeignVariable(variable: SirForeignVariable): SirDeclaration =
|
||||
transformDeclaration(variable)
|
||||
|
||||
final override fun transformForeignVariable(variable: SirForeignVariable, data: Nothing?): SirDeclaration =
|
||||
transformForeignVariable(variable)
|
||||
}
|
||||
|
||||
@@ -41,9 +41,27 @@ abstract class SirVisitor<out R, in D> {
|
||||
open fun visitCallable(callable: SirCallable, data: D): R =
|
||||
visitDeclaration(callable, data)
|
||||
|
||||
open fun visitNativeCallable(nativeCallable: SirNativeCallable, data: D): R =
|
||||
visitCallable(nativeCallable, data)
|
||||
|
||||
open fun visitFunction(function: SirFunction, data: D): R =
|
||||
visitCallable(function, data)
|
||||
|
||||
open fun visitForeignFunction(function: SirForeignFunction, data: D): R =
|
||||
visitCallable(function, data)
|
||||
|
||||
open fun visitAccessor(accessor: SirAccessor, data: D): R =
|
||||
visitCallable(accessor, data)
|
||||
|
||||
open fun visitGetter(getter: SirGetter, data: D): R =
|
||||
visitAccessor(getter, data)
|
||||
|
||||
open fun visitSetter(setter: SirSetter, data: D): R =
|
||||
visitAccessor(setter, data)
|
||||
|
||||
open fun visitVariable(variable: SirVariable, data: D): R =
|
||||
visitDeclaration(variable, data)
|
||||
|
||||
open fun visitForeignVariable(variable: SirForeignVariable, data: D): R =
|
||||
visitDeclaration(variable, data)
|
||||
}
|
||||
|
||||
@@ -86,6 +86,14 @@ abstract class SirVisitorVoid : SirVisitor<Unit, Nothing?>() {
|
||||
visitDeclaration(callable)
|
||||
}
|
||||
|
||||
final override fun visitNativeCallable(nativeCallable: SirNativeCallable, data: Nothing?) {
|
||||
visitNativeCallable(nativeCallable)
|
||||
}
|
||||
|
||||
open fun visitNativeCallable(nativeCallable: SirNativeCallable) {
|
||||
visitCallable(nativeCallable)
|
||||
}
|
||||
|
||||
final override fun visitFunction(function: SirFunction, data: Nothing?) {
|
||||
visitFunction(function)
|
||||
}
|
||||
@@ -101,4 +109,44 @@ abstract class SirVisitorVoid : SirVisitor<Unit, Nothing?>() {
|
||||
open fun visitForeignFunction(function: SirForeignFunction) {
|
||||
visitCallable(function)
|
||||
}
|
||||
|
||||
final override fun visitAccessor(accessor: SirAccessor, data: Nothing?) {
|
||||
visitAccessor(accessor)
|
||||
}
|
||||
|
||||
open fun visitAccessor(accessor: SirAccessor) {
|
||||
visitCallable(accessor)
|
||||
}
|
||||
|
||||
final override fun visitGetter(getter: SirGetter, data: Nothing?) {
|
||||
visitGetter(getter)
|
||||
}
|
||||
|
||||
open fun visitGetter(getter: SirGetter) {
|
||||
visitAccessor(getter)
|
||||
}
|
||||
|
||||
final override fun visitSetter(setter: SirSetter, data: Nothing?) {
|
||||
visitSetter(setter)
|
||||
}
|
||||
|
||||
open fun visitSetter(setter: SirSetter) {
|
||||
visitAccessor(setter)
|
||||
}
|
||||
|
||||
final override fun visitVariable(variable: SirVariable, data: Nothing?) {
|
||||
visitVariable(variable)
|
||||
}
|
||||
|
||||
open fun visitVariable(variable: SirVariable) {
|
||||
visitDeclaration(variable)
|
||||
}
|
||||
|
||||
final override fun visitForeignVariable(variable: SirForeignVariable, data: Nothing?) {
|
||||
visitForeignVariable(variable)
|
||||
}
|
||||
|
||||
open fun visitForeignVariable(variable: SirForeignVariable) {
|
||||
visitDeclaration(variable)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,11 @@ sealed interface SirKotlinOrigin : SirOrigin.Foreign {
|
||||
val returnType: Type
|
||||
}
|
||||
|
||||
interface Property : SirKotlinOrigin {
|
||||
val type: Type
|
||||
val isWriteable: Boolean
|
||||
}
|
||||
|
||||
interface Parameter {
|
||||
val name: String
|
||||
val type: Type
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
/*
|
||||
* Copyright 2010-2023 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.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.sir.constants
|
||||
|
||||
private const val KOTLIN_PACKAGE = "kotlin"
|
||||
private const val DELIMITER = "/"
|
||||
private const val KOTLIN_BUILTIN_TYPE_PREFIX = "${KOTLIN_PACKAGE}${DELIMITER}"
|
||||
|
||||
const val UNIT = "${KOTLIN_BUILTIN_TYPE_PREFIX}Unit"
|
||||
const val BYTE = "${KOTLIN_BUILTIN_TYPE_PREFIX}Byte"
|
||||
const val SHORT = "${KOTLIN_BUILTIN_TYPE_PREFIX}Short"
|
||||
const val INT = "${KOTLIN_BUILTIN_TYPE_PREFIX}Int"
|
||||
const val LONG = "${KOTLIN_BUILTIN_TYPE_PREFIX}Long"
|
||||
const val BOOLEAN = "${KOTLIN_BUILTIN_TYPE_PREFIX}Boolean"
|
||||
const val DOUBLE = "${KOTLIN_BUILTIN_TYPE_PREFIX}Double"
|
||||
const val FLOAT = "${KOTLIN_BUILTIN_TYPE_PREFIX}Float"
|
||||
@@ -1,18 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2023 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.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.sir.constants
|
||||
|
||||
private const val KOTLIN_PACKAGE = "kotlin"
|
||||
private const val DELIMITER = "/"
|
||||
private const val KOTLIN_NUMERIC_TYPE_PREFIX = "${KOTLIN_PACKAGE}${DELIMITER}"
|
||||
|
||||
const val BYTE = "${KOTLIN_NUMERIC_TYPE_PREFIX}Byte"
|
||||
const val SHORT = "${KOTLIN_NUMERIC_TYPE_PREFIX}Short"
|
||||
const val INT = "${KOTLIN_NUMERIC_TYPE_PREFIX}Int"
|
||||
const val LONG = "${KOTLIN_NUMERIC_TYPE_PREFIX}Long"
|
||||
const val BOOLEAN = "${KOTLIN_NUMERIC_TYPE_PREFIX}Boolean"
|
||||
const val DOUBLE = "${KOTLIN_NUMERIC_TYPE_PREFIX}Double"
|
||||
const val FLOAT = "${KOTLIN_NUMERIC_TYPE_PREFIX}Float"
|
||||
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.sir.util
|
||||
|
||||
import org.jetbrains.kotlin.sir.*
|
||||
|
||||
val SirNativeCallable.allParameters: List<SirParameter>
|
||||
get() = when (this) {
|
||||
is SirFunction -> this.parameters
|
||||
is SirSetter -> listOf(SirParameter(parameterName = parameterName, type = this.valueType))
|
||||
is SirGetter -> listOf()
|
||||
}
|
||||
|
||||
val SirNativeCallable.returnType: SirType
|
||||
get() = when (this) {
|
||||
is SirFunction -> this.returnType
|
||||
is SirGetter -> this.valueType
|
||||
is SirSetter -> SirNominalType(SirSwiftModule.void)
|
||||
}
|
||||
|
||||
val SirAccessor.valueType: SirType
|
||||
get() = this.parent.let {
|
||||
when (it) {
|
||||
is SirVariable -> it.type
|
||||
else -> error("Invalid accessor parent $parent")
|
||||
}
|
||||
}
|
||||
|
||||
val SirVariable.accessors: List<SirAccessor>
|
||||
get() = listOfNotNull(
|
||||
getter,
|
||||
setter,
|
||||
)
|
||||
|
||||
val SirParameter.name: String? get() = parameterName ?: argumentName
|
||||
|
||||
val SirType.isVoid: Boolean get() = this is SirNominalType && this.type == SirSwiftModule.void
|
||||
@@ -20,6 +20,8 @@ object SirSwiftModule : SirModule() {
|
||||
override val name: String get() = "Swift"
|
||||
override val declarations: List<SirDeclaration> by lazy {
|
||||
listOf(
|
||||
void,
|
||||
|
||||
bool,
|
||||
|
||||
int8,
|
||||
@@ -52,6 +54,12 @@ object SirSwiftModule : SirModule() {
|
||||
val double = primitive("Double")
|
||||
val float = primitive("Float")
|
||||
|
||||
val void = buildStruct {
|
||||
origin = SirOrigin.ExternallyDefined(name = "Swift.Void")
|
||||
visibility = SirVisibility.PUBLIC
|
||||
name = "Void"
|
||||
}.also { it.parent = SirSwiftModule }
|
||||
|
||||
override fun <R, D> acceptChildren(visitor: SirVisitor<R, D>, data: D) {
|
||||
declarations.forEach { it.accept(visitor, data) }
|
||||
}
|
||||
|
||||
+4
@@ -22,5 +22,9 @@ class BuilderConfigurator(elements: List<Element>) : AbstractSwiftIrTreeBuilderC
|
||||
configureFieldInAllLeafBuilders("visibility") {
|
||||
default(it, "SirVisibility.PUBLIC")
|
||||
}
|
||||
|
||||
builder(setter) {
|
||||
default("parameterName", "\"newValue\"")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+45
-1
@@ -78,9 +78,15 @@ object SwiftIrTree : AbstractSwiftIrTreeBuilder() {
|
||||
parent(declaration)
|
||||
}
|
||||
|
||||
// Denotes "actual" callable node. (I.e. SirCallable & !SIRForeignDeclaration)
|
||||
// TODO: remove along with foreign declaration (KT-65335); replace usages with just SIRCallable
|
||||
val nativeCallable by sealedElement {
|
||||
parent(callable)
|
||||
}
|
||||
|
||||
val function by element {
|
||||
customParentInVisitor = callable
|
||||
parent(callable)
|
||||
parent(nativeCallable)
|
||||
|
||||
+field("isStatic", boolean) // todo: KT-65046 Method|function distinction in SIR
|
||||
+field("name", string)
|
||||
@@ -98,4 +104,42 @@ object SwiftIrTree : AbstractSwiftIrTreeBuilder() {
|
||||
|
||||
visitorParameterName = "function"
|
||||
}
|
||||
|
||||
val accessor by sealedElement {
|
||||
customParentInVisitor = callable
|
||||
parent(nativeCallable)
|
||||
|
||||
+field("body", functionBodyType, nullable = true, mutable = true)
|
||||
}
|
||||
|
||||
val getter by element {
|
||||
parent(accessor)
|
||||
}
|
||||
|
||||
val setter by element {
|
||||
parent(accessor)
|
||||
|
||||
+field("parameterName", string, initializer = { })
|
||||
}
|
||||
|
||||
val variable by element {
|
||||
customParentInVisitor = declaration
|
||||
parent(declaration)
|
||||
parent(declarationParent)
|
||||
|
||||
+field("name", string)
|
||||
+field("type", typeType)
|
||||
|
||||
+field("getter", getter)
|
||||
+field("setter", setter, nullable = true)
|
||||
|
||||
+field("isStatic", boolean) // todo: KT-65046 Method|function distinction in SIR
|
||||
}
|
||||
|
||||
val foreignVariable by element {
|
||||
customParentInVisitor = declaration
|
||||
parent(foreignDeclaration)
|
||||
|
||||
visitorParameterName = "variable"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user