IR: introduce IrFactory
This is needed to refactor IrPersistingElementBase-based implementations into another module, to use it in JS IR.
This commit is contained in:
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.backend.common.ir.Ir
|
|||||||
import org.jetbrains.kotlin.backend.common.ir.SharedVariablesManager
|
import org.jetbrains.kotlin.backend.common.ir.SharedVariablesManager
|
||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrClass
|
import org.jetbrains.kotlin.ir.declarations.IrClass
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.IrFactory
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrField
|
import org.jetbrains.kotlin.ir.declarations.IrField
|
||||||
import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns
|
import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol
|
||||||
@@ -35,4 +36,5 @@ interface BackendContext {
|
|||||||
val transformedFunction: MutableMap<IrFunctionSymbol, IrSimpleFunctionSymbol>
|
val transformedFunction: MutableMap<IrFunctionSymbol, IrSimpleFunctionSymbol>
|
||||||
val lateinitNullableFields: MutableMap<IrField, IrField>
|
val lateinitNullableFields: MutableMap<IrField, IrField>
|
||||||
val extractedLocalClasses: MutableSet<IrClass>
|
val extractedLocalClasses: MutableSet<IrClass>
|
||||||
|
val irFactory: IrFactory
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ import org.jetbrains.kotlin.ir.backend.js.ir.JsIrDeclarationBuilder
|
|||||||
import org.jetbrains.kotlin.ir.backend.js.lower.JsInnerClassesSupport
|
import org.jetbrains.kotlin.ir.backend.js.lower.JsInnerClassesSupport
|
||||||
import org.jetbrains.kotlin.ir.backend.js.utils.OperatorNames
|
import org.jetbrains.kotlin.ir.backend.js.utils.OperatorNames
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
|
||||||
import org.jetbrains.kotlin.ir.declarations.impl.IrExternalPackageFragmentImpl
|
import org.jetbrains.kotlin.ir.declarations.impl.IrExternalPackageFragmentImpl
|
||||||
import org.jetbrains.kotlin.ir.declarations.impl.IrFileImpl
|
import org.jetbrains.kotlin.ir.declarations.impl.IrFileImpl
|
||||||
import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns
|
import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns
|
||||||
@@ -54,6 +55,7 @@ class JsIrBackendContext(
|
|||||||
|
|
||||||
override var inVerbosePhase: Boolean = false
|
override var inVerbosePhase: Boolean = false
|
||||||
|
|
||||||
|
override val irFactory: IrFactory = IrFactoryImpl
|
||||||
override val jsIrDeclarationBuilder: JsIrDeclarationBuilder = JsIrDeclarationBuilder()
|
override val jsIrDeclarationBuilder: JsIrDeclarationBuilder = JsIrDeclarationBuilder()
|
||||||
|
|
||||||
val devMode = configuration[JSConfigurationKeys.DEVELOPER_MODE] ?: false
|
val devMode = configuration[JSConfigurationKeys.DEVELOPER_MODE] ?: false
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ import org.jetbrains.kotlin.ir.builders.IrBuilderWithScope
|
|||||||
import org.jetbrains.kotlin.ir.builders.irBlock
|
import org.jetbrains.kotlin.ir.builders.irBlock
|
||||||
import org.jetbrains.kotlin.ir.builders.irNull
|
import org.jetbrains.kotlin.ir.builders.irNull
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
|
||||||
import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns
|
import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrFunctionReference
|
import org.jetbrains.kotlin.ir.expressions.IrFunctionReference
|
||||||
@@ -60,6 +61,8 @@ class JvmBackendContext(
|
|||||||
|
|
||||||
override val extractedLocalClasses: MutableSet<IrClass> = hashSetOf()
|
override val extractedLocalClasses: MutableSet<IrClass> = hashSetOf()
|
||||||
|
|
||||||
|
override val irFactory: IrFactory = IrFactoryImpl
|
||||||
|
|
||||||
override val scriptMode: Boolean = false
|
override val scriptMode: Boolean = false
|
||||||
override val lateinitNullableFields = mutableMapOf<IrField, IrField>()
|
override val lateinitNullableFields = mutableMapOf<IrField, IrField>()
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ import org.jetbrains.kotlin.ir.backend.js.JsSharedVariablesManager
|
|||||||
import org.jetbrains.kotlin.ir.backend.js.ir.JsIrDeclarationBuilder
|
import org.jetbrains.kotlin.ir.backend.js.ir.JsIrDeclarationBuilder
|
||||||
import org.jetbrains.kotlin.ir.backend.js.lower.JsInnerClassesSupport
|
import org.jetbrains.kotlin.ir.backend.js.lower.JsInnerClassesSupport
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
|
||||||
import org.jetbrains.kotlin.ir.declarations.impl.IrExternalPackageFragmentImpl
|
import org.jetbrains.kotlin.ir.declarations.impl.IrExternalPackageFragmentImpl
|
||||||
import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns
|
import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
||||||
@@ -42,6 +43,7 @@ class WasmBackendContext(
|
|||||||
override val transformedFunction = mutableMapOf<IrFunctionSymbol, IrSimpleFunctionSymbol>()
|
override val transformedFunction = mutableMapOf<IrFunctionSymbol, IrSimpleFunctionSymbol>()
|
||||||
override val lateinitNullableFields = mutableMapOf<IrField, IrField>()
|
override val lateinitNullableFields = mutableMapOf<IrField, IrField>()
|
||||||
override val extractedLocalClasses: MutableSet<IrClass> = hashSetOf()
|
override val extractedLocalClasses: MutableSet<IrClass> = hashSetOf()
|
||||||
|
override val irFactory: IrFactory = IrFactoryImpl
|
||||||
override val jsIrDeclarationBuilder: JsIrDeclarationBuilder = JsIrDeclarationBuilder()
|
override val jsIrDeclarationBuilder: JsIrDeclarationBuilder = JsIrDeclarationBuilder()
|
||||||
|
|
||||||
// Place to store declarations excluded from code generation
|
// Place to store declarations excluded from code generation
|
||||||
|
|||||||
@@ -0,0 +1,195 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2020 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.ir.declarations
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
|
import org.jetbrains.kotlin.ir.symbols.*
|
||||||
|
import org.jetbrains.kotlin.ir.types.IrType
|
||||||
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
import org.jetbrains.kotlin.types.Variance
|
||||||
|
|
||||||
|
interface IrFactory {
|
||||||
|
fun createAnonymousInitializer(
|
||||||
|
startOffset: Int,
|
||||||
|
endOffset: Int,
|
||||||
|
origin: IrDeclarationOrigin,
|
||||||
|
symbol: IrAnonymousInitializerSymbol,
|
||||||
|
isStatic: Boolean = false,
|
||||||
|
): IrAnonymousInitializer
|
||||||
|
|
||||||
|
fun createClass(
|
||||||
|
startOffset: Int,
|
||||||
|
endOffset: Int,
|
||||||
|
origin: IrDeclarationOrigin,
|
||||||
|
symbol: IrClassSymbol,
|
||||||
|
name: Name,
|
||||||
|
kind: ClassKind,
|
||||||
|
visibility: Visibility,
|
||||||
|
modality: Modality,
|
||||||
|
isCompanion: Boolean = false,
|
||||||
|
isInner: Boolean = false,
|
||||||
|
isData: Boolean = false,
|
||||||
|
isExternal: Boolean = false,
|
||||||
|
isInline: Boolean = false,
|
||||||
|
isExpect: Boolean = false,
|
||||||
|
isFun: Boolean = false,
|
||||||
|
source: SourceElement = SourceElement.NO_SOURCE,
|
||||||
|
): IrClass
|
||||||
|
|
||||||
|
fun createConstructor(
|
||||||
|
startOffset: Int,
|
||||||
|
endOffset: Int,
|
||||||
|
origin: IrDeclarationOrigin,
|
||||||
|
symbol: IrConstructorSymbol,
|
||||||
|
name: Name,
|
||||||
|
visibility: Visibility,
|
||||||
|
returnType: IrType,
|
||||||
|
isInline: Boolean,
|
||||||
|
isExternal: Boolean,
|
||||||
|
isPrimary: Boolean,
|
||||||
|
isExpect: Boolean,
|
||||||
|
): IrConstructor
|
||||||
|
|
||||||
|
fun createEnumEntry(
|
||||||
|
startOffset: Int,
|
||||||
|
endOffset: Int,
|
||||||
|
origin: IrDeclarationOrigin,
|
||||||
|
symbol: IrEnumEntrySymbol,
|
||||||
|
name: Name,
|
||||||
|
): IrEnumEntry
|
||||||
|
|
||||||
|
fun createErrorDeclaration(
|
||||||
|
startOffset: Int,
|
||||||
|
endOffset: Int,
|
||||||
|
descriptor: DeclarationDescriptor,
|
||||||
|
): IrErrorDeclaration
|
||||||
|
|
||||||
|
fun createField(
|
||||||
|
startOffset: Int,
|
||||||
|
endOffset: Int,
|
||||||
|
origin: IrDeclarationOrigin,
|
||||||
|
symbol: IrFieldSymbol,
|
||||||
|
name: Name,
|
||||||
|
type: IrType,
|
||||||
|
visibility: Visibility,
|
||||||
|
isFinal: Boolean,
|
||||||
|
isExternal: Boolean,
|
||||||
|
isStatic: Boolean,
|
||||||
|
): IrField
|
||||||
|
|
||||||
|
fun createFunction(
|
||||||
|
startOffset: Int,
|
||||||
|
endOffset: Int,
|
||||||
|
origin: IrDeclarationOrigin,
|
||||||
|
symbol: IrSimpleFunctionSymbol,
|
||||||
|
name: Name,
|
||||||
|
visibility: Visibility,
|
||||||
|
modality: Modality,
|
||||||
|
returnType: IrType,
|
||||||
|
isInline: Boolean,
|
||||||
|
isExternal: Boolean,
|
||||||
|
isTailrec: Boolean,
|
||||||
|
isSuspend: Boolean,
|
||||||
|
isOperator: Boolean,
|
||||||
|
isInfix: Boolean,
|
||||||
|
isExpect: Boolean,
|
||||||
|
isFakeOverride: Boolean = origin == IrDeclarationOrigin.FAKE_OVERRIDE,
|
||||||
|
): IrSimpleFunction
|
||||||
|
|
||||||
|
fun createFakeOverrideFunction(
|
||||||
|
startOffset: Int,
|
||||||
|
endOffset: Int,
|
||||||
|
origin: IrDeclarationOrigin,
|
||||||
|
name: Name,
|
||||||
|
visibility: Visibility,
|
||||||
|
modality: Modality,
|
||||||
|
returnType: IrType,
|
||||||
|
isInline: Boolean,
|
||||||
|
isExternal: Boolean,
|
||||||
|
isTailrec: Boolean,
|
||||||
|
isSuspend: Boolean,
|
||||||
|
isOperator: Boolean,
|
||||||
|
isInfix: Boolean,
|
||||||
|
isExpect: Boolean,
|
||||||
|
): IrSimpleFunction
|
||||||
|
|
||||||
|
fun createLocalDelegatedProperty(
|
||||||
|
startOffset: Int,
|
||||||
|
endOffset: Int,
|
||||||
|
origin: IrDeclarationOrigin,
|
||||||
|
symbol: IrLocalDelegatedPropertySymbol,
|
||||||
|
name: Name,
|
||||||
|
type: IrType,
|
||||||
|
isVar: Boolean,
|
||||||
|
): IrLocalDelegatedProperty
|
||||||
|
|
||||||
|
fun createProperty(
|
||||||
|
startOffset: Int,
|
||||||
|
endOffset: Int,
|
||||||
|
origin: IrDeclarationOrigin,
|
||||||
|
symbol: IrPropertySymbol,
|
||||||
|
name: Name,
|
||||||
|
visibility: Visibility,
|
||||||
|
modality: Modality,
|
||||||
|
isVar: Boolean,
|
||||||
|
isConst: Boolean,
|
||||||
|
isLateinit: Boolean,
|
||||||
|
isDelegated: Boolean,
|
||||||
|
isExternal: Boolean,
|
||||||
|
isExpect: Boolean = false,
|
||||||
|
isFakeOverride: Boolean = origin == IrDeclarationOrigin.FAKE_OVERRIDE,
|
||||||
|
): IrProperty
|
||||||
|
|
||||||
|
fun createFakeOverrideProperty(
|
||||||
|
startOffset: Int,
|
||||||
|
endOffset: Int,
|
||||||
|
origin: IrDeclarationOrigin,
|
||||||
|
name: Name,
|
||||||
|
visibility: Visibility,
|
||||||
|
modality: Modality,
|
||||||
|
isVar: Boolean,
|
||||||
|
isConst: Boolean,
|
||||||
|
isLateinit: Boolean,
|
||||||
|
isDelegated: Boolean,
|
||||||
|
isExternal: Boolean,
|
||||||
|
isExpect: Boolean,
|
||||||
|
): IrFakeOverrideProperty
|
||||||
|
|
||||||
|
fun createTypeAlias(
|
||||||
|
startOffset: Int,
|
||||||
|
endOffset: Int,
|
||||||
|
symbol: IrTypeAliasSymbol,
|
||||||
|
name: Name,
|
||||||
|
visibility: Visibility,
|
||||||
|
expandedType: IrType,
|
||||||
|
isActual: Boolean,
|
||||||
|
origin: IrDeclarationOrigin,
|
||||||
|
): IrTypeAlias
|
||||||
|
|
||||||
|
fun createTypeParameter(
|
||||||
|
startOffset: Int,
|
||||||
|
endOffset: Int,
|
||||||
|
origin: IrDeclarationOrigin,
|
||||||
|
symbol: IrTypeParameterSymbol,
|
||||||
|
name: Name,
|
||||||
|
index: Int,
|
||||||
|
isReified: Boolean,
|
||||||
|
variance: Variance,
|
||||||
|
): IrTypeParameter
|
||||||
|
|
||||||
|
fun createValueParameter(
|
||||||
|
startOffset: Int,
|
||||||
|
endOffset: Int,
|
||||||
|
origin: IrDeclarationOrigin,
|
||||||
|
symbol: IrValueParameterSymbol,
|
||||||
|
name: Name,
|
||||||
|
index: Int,
|
||||||
|
type: IrType,
|
||||||
|
varargElementType: IrType?,
|
||||||
|
isCrossinline: Boolean,
|
||||||
|
isNoinline: Boolean,
|
||||||
|
): IrValueParameter
|
||||||
|
}
|
||||||
@@ -0,0 +1,225 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2020 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.ir.declarations.impl
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
|
import org.jetbrains.kotlin.ir.symbols.*
|
||||||
|
import org.jetbrains.kotlin.ir.types.IrType
|
||||||
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
import org.jetbrains.kotlin.types.Variance
|
||||||
|
|
||||||
|
object IrFactoryImpl : IrFactory {
|
||||||
|
override fun createAnonymousInitializer(
|
||||||
|
startOffset: Int,
|
||||||
|
endOffset: Int,
|
||||||
|
origin: IrDeclarationOrigin,
|
||||||
|
symbol: IrAnonymousInitializerSymbol,
|
||||||
|
isStatic: Boolean,
|
||||||
|
): IrAnonymousInitializer =
|
||||||
|
IrAnonymousInitializerImpl(startOffset, endOffset, origin, symbol, isStatic)
|
||||||
|
|
||||||
|
override fun createClass(
|
||||||
|
startOffset: Int,
|
||||||
|
endOffset: Int,
|
||||||
|
origin: IrDeclarationOrigin,
|
||||||
|
symbol: IrClassSymbol,
|
||||||
|
name: Name,
|
||||||
|
kind: ClassKind,
|
||||||
|
visibility: Visibility,
|
||||||
|
modality: Modality,
|
||||||
|
isCompanion: Boolean,
|
||||||
|
isInner: Boolean,
|
||||||
|
isData: Boolean,
|
||||||
|
isExternal: Boolean,
|
||||||
|
isInline: Boolean,
|
||||||
|
isExpect: Boolean,
|
||||||
|
isFun: Boolean,
|
||||||
|
source: SourceElement,
|
||||||
|
): IrClass =
|
||||||
|
IrClassImpl(
|
||||||
|
startOffset, endOffset, origin, symbol, name, kind, visibility, modality,
|
||||||
|
isCompanion, isInner, isData, isExternal, isInline, isExpect, isFun, source,
|
||||||
|
)
|
||||||
|
|
||||||
|
override fun createConstructor(
|
||||||
|
startOffset: Int,
|
||||||
|
endOffset: Int,
|
||||||
|
origin: IrDeclarationOrigin,
|
||||||
|
symbol: IrConstructorSymbol,
|
||||||
|
name: Name,
|
||||||
|
visibility: Visibility,
|
||||||
|
returnType: IrType,
|
||||||
|
isInline: Boolean,
|
||||||
|
isExternal: Boolean,
|
||||||
|
isPrimary: Boolean,
|
||||||
|
isExpect: Boolean,
|
||||||
|
): IrConstructor =
|
||||||
|
IrConstructorImpl(startOffset, endOffset, origin, symbol, name, visibility, returnType, isInline, isExternal, isPrimary, isExpect)
|
||||||
|
|
||||||
|
override fun createEnumEntry(
|
||||||
|
startOffset: Int,
|
||||||
|
endOffset: Int,
|
||||||
|
origin: IrDeclarationOrigin,
|
||||||
|
symbol: IrEnumEntrySymbol,
|
||||||
|
name: Name,
|
||||||
|
): IrEnumEntry =
|
||||||
|
IrEnumEntryImpl(startOffset, endOffset, origin, symbol, name)
|
||||||
|
|
||||||
|
override fun createErrorDeclaration(
|
||||||
|
startOffset: Int,
|
||||||
|
endOffset: Int,
|
||||||
|
descriptor: DeclarationDescriptor,
|
||||||
|
): IrErrorDeclaration =
|
||||||
|
IrErrorDeclarationImpl(startOffset, endOffset, descriptor)
|
||||||
|
|
||||||
|
override fun createField(
|
||||||
|
startOffset: Int,
|
||||||
|
endOffset: Int,
|
||||||
|
origin: IrDeclarationOrigin,
|
||||||
|
symbol: IrFieldSymbol,
|
||||||
|
name: Name,
|
||||||
|
type: IrType,
|
||||||
|
visibility: Visibility,
|
||||||
|
isFinal: Boolean,
|
||||||
|
isExternal: Boolean,
|
||||||
|
isStatic: Boolean,
|
||||||
|
): IrField =
|
||||||
|
IrFieldImpl(startOffset, endOffset, origin, symbol, name, type, visibility, isFinal, isExternal, isStatic)
|
||||||
|
|
||||||
|
override fun createFunction(
|
||||||
|
startOffset: Int,
|
||||||
|
endOffset: Int,
|
||||||
|
origin: IrDeclarationOrigin,
|
||||||
|
symbol: IrSimpleFunctionSymbol,
|
||||||
|
name: Name,
|
||||||
|
visibility: Visibility,
|
||||||
|
modality: Modality,
|
||||||
|
returnType: IrType,
|
||||||
|
isInline: Boolean,
|
||||||
|
isExternal: Boolean,
|
||||||
|
isTailrec: Boolean,
|
||||||
|
isSuspend: Boolean,
|
||||||
|
isOperator: Boolean,
|
||||||
|
isInfix: Boolean,
|
||||||
|
isExpect: Boolean,
|
||||||
|
isFakeOverride: Boolean,
|
||||||
|
): IrSimpleFunction =
|
||||||
|
IrFunctionImpl(
|
||||||
|
startOffset, endOffset, origin, symbol, name, visibility, modality, returnType,
|
||||||
|
isInline, isExternal, isTailrec, isSuspend, isOperator, isInfix, isExpect, isFakeOverride,
|
||||||
|
)
|
||||||
|
|
||||||
|
override fun createFakeOverrideFunction(
|
||||||
|
startOffset: Int,
|
||||||
|
endOffset: Int,
|
||||||
|
origin: IrDeclarationOrigin,
|
||||||
|
name: Name,
|
||||||
|
visibility: Visibility,
|
||||||
|
modality: Modality,
|
||||||
|
returnType: IrType,
|
||||||
|
isInline: Boolean,
|
||||||
|
isExternal: Boolean,
|
||||||
|
isTailrec: Boolean,
|
||||||
|
isSuspend: Boolean,
|
||||||
|
isOperator: Boolean,
|
||||||
|
isInfix: Boolean,
|
||||||
|
isExpect: Boolean,
|
||||||
|
): IrSimpleFunction =
|
||||||
|
IrFakeOverrideFunctionImpl(
|
||||||
|
startOffset, endOffset, origin, name, visibility, modality, returnType,
|
||||||
|
isInline, isExternal, isTailrec, isSuspend, isOperator, isInfix, isExpect,
|
||||||
|
)
|
||||||
|
|
||||||
|
override fun createLocalDelegatedProperty(
|
||||||
|
startOffset: Int,
|
||||||
|
endOffset: Int,
|
||||||
|
origin: IrDeclarationOrigin,
|
||||||
|
symbol: IrLocalDelegatedPropertySymbol,
|
||||||
|
name: Name,
|
||||||
|
type: IrType,
|
||||||
|
isVar: Boolean,
|
||||||
|
): IrLocalDelegatedProperty =
|
||||||
|
IrLocalDelegatedPropertyImpl(startOffset, endOffset, origin, symbol, name, type, isVar)
|
||||||
|
|
||||||
|
override fun createProperty(
|
||||||
|
startOffset: Int,
|
||||||
|
endOffset: Int,
|
||||||
|
origin: IrDeclarationOrigin,
|
||||||
|
symbol: IrPropertySymbol,
|
||||||
|
name: Name,
|
||||||
|
visibility: Visibility,
|
||||||
|
modality: Modality,
|
||||||
|
isVar: Boolean,
|
||||||
|
isConst: Boolean,
|
||||||
|
isLateinit: Boolean,
|
||||||
|
isDelegated: Boolean,
|
||||||
|
isExternal: Boolean,
|
||||||
|
isExpect: Boolean,
|
||||||
|
isFakeOverride: Boolean,
|
||||||
|
): IrProperty =
|
||||||
|
IrPropertyImpl(
|
||||||
|
startOffset, endOffset, origin, symbol, name, visibility, modality,
|
||||||
|
isVar, isConst, isLateinit, isDelegated, isExternal, isExpect, isFakeOverride,
|
||||||
|
)
|
||||||
|
|
||||||
|
override fun createFakeOverrideProperty(
|
||||||
|
startOffset: Int,
|
||||||
|
endOffset: Int,
|
||||||
|
origin: IrDeclarationOrigin,
|
||||||
|
name: Name,
|
||||||
|
visibility: Visibility,
|
||||||
|
modality: Modality,
|
||||||
|
isVar: Boolean,
|
||||||
|
isConst: Boolean,
|
||||||
|
isLateinit: Boolean,
|
||||||
|
isDelegated: Boolean,
|
||||||
|
isExternal: Boolean,
|
||||||
|
isExpect: Boolean,
|
||||||
|
): IrFakeOverrideProperty =
|
||||||
|
IrFakeOverridePropertyImpl(
|
||||||
|
startOffset, endOffset, origin, name, visibility, modality,
|
||||||
|
isVar, isConst, isLateinit, isDelegated, isExternal, isExpect,
|
||||||
|
)
|
||||||
|
|
||||||
|
override fun createTypeAlias(
|
||||||
|
startOffset: Int,
|
||||||
|
endOffset: Int,
|
||||||
|
symbol: IrTypeAliasSymbol,
|
||||||
|
name: Name,
|
||||||
|
visibility: Visibility,
|
||||||
|
expandedType: IrType,
|
||||||
|
isActual: Boolean,
|
||||||
|
origin: IrDeclarationOrigin,
|
||||||
|
): IrTypeAlias =
|
||||||
|
IrTypeAliasImpl(startOffset, endOffset, symbol, name, visibility, expandedType, isActual, origin)
|
||||||
|
|
||||||
|
override fun createTypeParameter(
|
||||||
|
startOffset: Int,
|
||||||
|
endOffset: Int,
|
||||||
|
origin: IrDeclarationOrigin,
|
||||||
|
symbol: IrTypeParameterSymbol,
|
||||||
|
name: Name,
|
||||||
|
index: Int,
|
||||||
|
isReified: Boolean,
|
||||||
|
variance: Variance,
|
||||||
|
): IrTypeParameter =
|
||||||
|
IrTypeParameterImpl(startOffset, endOffset, origin, symbol, name, index, isReified, variance)
|
||||||
|
|
||||||
|
override fun createValueParameter(
|
||||||
|
startOffset: Int,
|
||||||
|
endOffset: Int,
|
||||||
|
origin: IrDeclarationOrigin,
|
||||||
|
symbol: IrValueParameterSymbol,
|
||||||
|
name: Name,
|
||||||
|
index: Int,
|
||||||
|
type: IrType,
|
||||||
|
varargElementType: IrType?,
|
||||||
|
isCrossinline: Boolean,
|
||||||
|
isNoinline: Boolean,
|
||||||
|
): IrValueParameter =
|
||||||
|
IrValueParameterImpl(startOffset, endOffset, origin, symbol, name, index, type, varargElementType, isCrossinline, isNoinline)
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user