IR: remove base classes IrDeclarationBase and IrFunctionBase
They introduce a diamond class hierarchy which prevents IR element hierarchy from being transformed to classes.
This commit is contained in:
+13
-4
@@ -19,21 +19,30 @@ package org.jetbrains.kotlin.ir.declarations.impl
|
|||||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||||
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrAnonymousInitializer
|
import org.jetbrains.kotlin.ir.declarations.IrAnonymousInitializer
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.IrFactory
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrBlockBody
|
import org.jetbrains.kotlin.ir.expressions.IrBlockBody
|
||||||
|
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrAnonymousInitializerSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrAnonymousInitializerSymbol
|
||||||
|
|
||||||
class IrAnonymousInitializerImpl(
|
class IrAnonymousInitializerImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
origin: IrDeclarationOrigin,
|
override var origin: IrDeclarationOrigin,
|
||||||
override val symbol: IrAnonymousInitializerSymbol,
|
override val symbol: IrAnonymousInitializerSymbol,
|
||||||
override val isStatic: Boolean = false
|
override val isStatic: Boolean = false
|
||||||
) : IrDeclarationBase(startOffset, endOffset, origin), IrAnonymousInitializer {
|
) : IrAnonymousInitializer {
|
||||||
init {
|
init {
|
||||||
symbol.bind(this)
|
symbol.bind(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override val factory: IrFactory
|
||||||
|
get() = IrFactoryImpl
|
||||||
|
|
||||||
|
override lateinit var parent: IrDeclarationParent
|
||||||
|
override var annotations: List<IrConstructorCall> = emptyList()
|
||||||
|
|
||||||
@ObsoleteDescriptorBasedAPI
|
@ObsoleteDescriptorBasedAPI
|
||||||
override val descriptor: ClassDescriptor
|
override val descriptor: ClassDescriptor
|
||||||
get() = symbol.descriptor
|
get() = symbol.descriptor
|
||||||
|
|||||||
+11
-4
@@ -19,14 +19,15 @@ package org.jetbrains.kotlin.ir.declarations.impl
|
|||||||
import org.jetbrains.kotlin.descriptors.*
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
|
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
||||||
import org.jetbrains.kotlin.ir.types.IrType
|
import org.jetbrains.kotlin.ir.types.IrType
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
class IrClassImpl(
|
class IrClassImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
origin: IrDeclarationOrigin,
|
override var origin: IrDeclarationOrigin,
|
||||||
override val symbol: IrClassSymbol,
|
override val symbol: IrClassSymbol,
|
||||||
override val name: Name,
|
override val name: Name,
|
||||||
override val kind: ClassKind,
|
override val kind: ClassKind,
|
||||||
@@ -40,11 +41,17 @@ class IrClassImpl(
|
|||||||
override val isExpect: Boolean = false,
|
override val isExpect: Boolean = false,
|
||||||
override val isFun: Boolean = false,
|
override val isFun: Boolean = false,
|
||||||
override val source: SourceElement = SourceElement.NO_SOURCE
|
override val source: SourceElement = SourceElement.NO_SOURCE
|
||||||
) : IrDeclarationBase(startOffset, endOffset, origin), IrClass {
|
) : IrClass {
|
||||||
init {
|
init {
|
||||||
symbol.bind(this)
|
symbol.bind(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override val factory: IrFactory
|
||||||
|
get() = IrFactoryImpl
|
||||||
|
|
||||||
|
override lateinit var parent: IrDeclarationParent
|
||||||
|
override var annotations: List<IrConstructorCall> = emptyList()
|
||||||
|
|
||||||
@ObsoleteDescriptorBasedAPI
|
@ObsoleteDescriptorBasedAPI
|
||||||
override val descriptor: ClassDescriptor
|
override val descriptor: ClassDescriptor
|
||||||
get() = symbol.descriptor
|
get() = symbol.descriptor
|
||||||
|
|||||||
+36
-11
@@ -19,29 +19,54 @@ package org.jetbrains.kotlin.ir.declarations.impl
|
|||||||
import org.jetbrains.kotlin.descriptors.ClassConstructorDescriptor
|
import org.jetbrains.kotlin.descriptors.ClassConstructorDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.Visibility
|
import org.jetbrains.kotlin.descriptors.Visibility
|
||||||
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrConstructor
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
import org.jetbrains.kotlin.ir.expressions.IrBody
|
||||||
|
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol
|
||||||
import org.jetbrains.kotlin.ir.types.IrType
|
import org.jetbrains.kotlin.ir.types.IrType
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
class IrConstructorImpl(
|
class IrConstructorImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
origin: IrDeclarationOrigin,
|
override var origin: IrDeclarationOrigin,
|
||||||
override val symbol: IrConstructorSymbol,
|
override val symbol: IrConstructorSymbol,
|
||||||
name: Name,
|
override val name: Name,
|
||||||
visibility: Visibility,
|
override var visibility: Visibility,
|
||||||
returnType: IrType,
|
returnType: IrType,
|
||||||
isInline: Boolean,
|
override val isInline: Boolean,
|
||||||
isExternal: Boolean,
|
override val isExternal: Boolean,
|
||||||
override val isPrimary: Boolean,
|
override val isPrimary: Boolean,
|
||||||
isExpect: Boolean
|
override val isExpect: Boolean,
|
||||||
) : IrFunctionBase(startOffset, endOffset, origin, name, visibility, isInline, isExternal, isExpect, returnType), IrConstructor {
|
) : IrConstructor {
|
||||||
init {
|
init {
|
||||||
symbol.bind(this)
|
symbol.bind(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override val factory: IrFactory
|
||||||
|
get() = IrFactoryImpl
|
||||||
|
|
||||||
|
override lateinit var parent: IrDeclarationParent
|
||||||
|
override var annotations: List<IrConstructorCall> = emptyList()
|
||||||
|
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
|
override var returnType: IrType = returnType
|
||||||
|
get() = if (field === org.jetbrains.kotlin.ir.types.impl.IrUninitializedType) {
|
||||||
|
error("Return type is not initialized")
|
||||||
|
} else {
|
||||||
|
field
|
||||||
|
}
|
||||||
|
|
||||||
|
override var typeParameters: List<IrTypeParameter> = emptyList()
|
||||||
|
|
||||||
|
override var dispatchReceiverParameter: IrValueParameter? = null
|
||||||
|
override var extensionReceiverParameter: IrValueParameter? = null
|
||||||
|
override var valueParameters: List<IrValueParameter> = emptyList()
|
||||||
|
|
||||||
|
override var body: IrBody? = null
|
||||||
|
|
||||||
|
override var metadata: MetadataSource? = null
|
||||||
|
|
||||||
@ObsoleteDescriptorBasedAPI
|
@ObsoleteDescriptorBasedAPI
|
||||||
override val descriptor: ClassConstructorDescriptor
|
override val descriptor: ClassConstructorDescriptor
|
||||||
get() = symbol.descriptor
|
get() = symbol.descriptor
|
||||||
|
|||||||
-43
@@ -1,43 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2016 JetBrains s.r.o.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jetbrains.kotlin.ir.declarations.impl
|
|
||||||
|
|
||||||
import org.jetbrains.kotlin.ir.IrElementBase
|
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrDeclaration
|
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent
|
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrFactory
|
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
|
||||||
|
|
||||||
abstract class IrDeclarationBase(
|
|
||||||
startOffset: Int,
|
|
||||||
endOffset: Int,
|
|
||||||
override var origin: IrDeclarationOrigin
|
|
||||||
) : IrElementBase(startOffset, endOffset), IrDeclaration {
|
|
||||||
override val factory: IrFactory
|
|
||||||
get() = IrFactoryImpl
|
|
||||||
|
|
||||||
private var _parent: IrDeclarationParent? = null
|
|
||||||
override var parent: IrDeclarationParent
|
|
||||||
get() = _parent
|
|
||||||
?: throw UninitializedPropertyAccessException("Parent not initialized: $this")
|
|
||||||
set(v) {
|
|
||||||
_parent = v
|
|
||||||
}
|
|
||||||
|
|
||||||
override var annotations: List<IrConstructorCall> = emptyList()
|
|
||||||
}
|
|
||||||
+12
-7
@@ -18,24 +18,29 @@ package org.jetbrains.kotlin.ir.declarations.impl
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||||
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrClass
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrEnumEntry
|
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
|
import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrEnumEntrySymbol
|
import org.jetbrains.kotlin.ir.symbols.IrEnumEntrySymbol
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
class IrEnumEntryImpl(
|
class IrEnumEntryImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
origin: IrDeclarationOrigin,
|
override var origin: IrDeclarationOrigin,
|
||||||
override val symbol: IrEnumEntrySymbol,
|
override val symbol: IrEnumEntrySymbol,
|
||||||
override val name: Name
|
override val name: Name
|
||||||
) : IrDeclarationBase(startOffset, endOffset, origin), IrEnumEntry {
|
) : IrEnumEntry {
|
||||||
init {
|
init {
|
||||||
symbol.bind(this)
|
symbol.bind(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override val factory: IrFactory
|
||||||
|
get() = IrFactoryImpl
|
||||||
|
|
||||||
|
override lateinit var parent: IrDeclarationParent
|
||||||
|
override var annotations: List<IrConstructorCall> = emptyList()
|
||||||
|
|
||||||
@ObsoleteDescriptorBasedAPI
|
@ObsoleteDescriptorBasedAPI
|
||||||
override val descriptor: ClassDescriptor
|
override val descriptor: ClassDescriptor
|
||||||
get() = symbol.descriptor
|
get() = symbol.descriptor
|
||||||
|
|||||||
+14
-3
@@ -18,12 +18,23 @@ package org.jetbrains.kotlin.ir.declarations.impl
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||||
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.IrFactory
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrErrorDeclaration
|
import org.jetbrains.kotlin.ir.declarations.IrErrorDeclaration
|
||||||
|
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||||
|
|
||||||
@OptIn(ObsoleteDescriptorBasedAPI::class)
|
@OptIn(ObsoleteDescriptorBasedAPI::class)
|
||||||
class IrErrorDeclarationImpl(
|
class IrErrorDeclarationImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
override val descriptor: DeclarationDescriptor
|
override val descriptor: DeclarationDescriptor
|
||||||
) : IrDeclarationBase(startOffset, endOffset, IrDeclarationOrigin.DEFINED), IrErrorDeclaration
|
) : IrErrorDeclaration {
|
||||||
|
override var origin: IrDeclarationOrigin = IrDeclarationOrigin.DEFINED
|
||||||
|
|
||||||
|
override val factory: IrFactory
|
||||||
|
get() = IrFactoryImpl
|
||||||
|
|
||||||
|
override lateinit var parent: IrDeclarationParent
|
||||||
|
override var annotations: List<IrConstructorCall> = emptyList()
|
||||||
|
}
|
||||||
|
|||||||
+12
-7
@@ -19,9 +19,8 @@ package org.jetbrains.kotlin.ir.declarations.impl
|
|||||||
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
|
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.Visibility
|
import org.jetbrains.kotlin.descriptors.Visibility
|
||||||
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrField
|
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||||
import org.jetbrains.kotlin.ir.declarations.MetadataSource
|
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
|
import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrFieldSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrFieldSymbol
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol
|
import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol
|
||||||
@@ -29,9 +28,9 @@ import org.jetbrains.kotlin.ir.types.IrType
|
|||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
class IrFieldImpl(
|
class IrFieldImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
origin: IrDeclarationOrigin,
|
override var origin: IrDeclarationOrigin,
|
||||||
override val symbol: IrFieldSymbol,
|
override val symbol: IrFieldSymbol,
|
||||||
override val name: Name,
|
override val name: Name,
|
||||||
override val type: IrType,
|
override val type: IrType,
|
||||||
@@ -39,11 +38,17 @@ class IrFieldImpl(
|
|||||||
override val isFinal: Boolean,
|
override val isFinal: Boolean,
|
||||||
override val isExternal: Boolean,
|
override val isExternal: Boolean,
|
||||||
override val isStatic: Boolean,
|
override val isStatic: Boolean,
|
||||||
) : IrDeclarationBase(startOffset, endOffset, origin), IrField {
|
) : IrField {
|
||||||
init {
|
init {
|
||||||
symbol.bind(this)
|
symbol.bind(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override val factory: IrFactory
|
||||||
|
get() = IrFactoryImpl
|
||||||
|
|
||||||
|
override lateinit var parent: IrDeclarationParent
|
||||||
|
override var annotations: List<IrConstructorCall> = emptyList()
|
||||||
|
|
||||||
@ObsoleteDescriptorBasedAPI
|
@ObsoleteDescriptorBasedAPI
|
||||||
override val descriptor: PropertyDescriptor
|
override val descriptor: PropertyDescriptor
|
||||||
get() = symbol.descriptor
|
get() = symbol.descriptor
|
||||||
|
|||||||
-53
@@ -1,53 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2016 JetBrains s.r.o.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jetbrains.kotlin.ir.declarations.impl
|
|
||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.Visibility
|
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrBody
|
|
||||||
import org.jetbrains.kotlin.ir.types.IrType
|
|
||||||
import org.jetbrains.kotlin.name.Name
|
|
||||||
|
|
||||||
abstract class IrFunctionBase(
|
|
||||||
startOffset: Int,
|
|
||||||
endOffset: Int,
|
|
||||||
origin: IrDeclarationOrigin,
|
|
||||||
override val name: Name,
|
|
||||||
override var visibility: Visibility,
|
|
||||||
override val isInline: Boolean,
|
|
||||||
override val isExternal: Boolean,
|
|
||||||
override val isExpect: Boolean,
|
|
||||||
returnType: IrType
|
|
||||||
) : IrDeclarationBase(startOffset, endOffset, origin), IrFunction {
|
|
||||||
@Suppress("DEPRECATION")
|
|
||||||
final override var returnType: IrType = returnType
|
|
||||||
get() = if (field === org.jetbrains.kotlin.ir.types.impl.IrUninitializedType) {
|
|
||||||
error("Return type is not initialized")
|
|
||||||
} else {
|
|
||||||
field
|
|
||||||
}
|
|
||||||
|
|
||||||
override var typeParameters: List<IrTypeParameter> = emptyList()
|
|
||||||
|
|
||||||
override var dispatchReceiverParameter: IrValueParameter? = null
|
|
||||||
override var extensionReceiverParameter: IrValueParameter? = null
|
|
||||||
override var valueParameters: List<IrValueParameter> = emptyList()
|
|
||||||
|
|
||||||
final override var body: IrBody? = null
|
|
||||||
|
|
||||||
override var metadata: MetadataSource? = null
|
|
||||||
}
|
|
||||||
+36
-13
@@ -9,31 +9,54 @@ import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
|||||||
import org.jetbrains.kotlin.descriptors.Modality
|
import org.jetbrains.kotlin.descriptors.Modality
|
||||||
import org.jetbrains.kotlin.descriptors.Visibility
|
import org.jetbrains.kotlin.descriptors.Visibility
|
||||||
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrAttributeContainer
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrFakeOverrideFunction
|
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction
|
|
||||||
import org.jetbrains.kotlin.ir.descriptors.WrappedSimpleFunctionDescriptor
|
import org.jetbrains.kotlin.ir.descriptors.WrappedSimpleFunctionDescriptor
|
||||||
|
import org.jetbrains.kotlin.ir.expressions.IrBody
|
||||||
|
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol
|
import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol
|
||||||
import org.jetbrains.kotlin.ir.types.IrType
|
import org.jetbrains.kotlin.ir.types.IrType
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
abstract class IrFunctionCommonImpl(
|
abstract class IrFunctionCommonImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
origin: IrDeclarationOrigin,
|
override var origin: IrDeclarationOrigin,
|
||||||
name: Name,
|
override val name: Name,
|
||||||
visibility: Visibility,
|
override var visibility: Visibility,
|
||||||
returnType: IrType,
|
returnType: IrType,
|
||||||
isInline: Boolean,
|
override val isInline: Boolean,
|
||||||
isExternal: Boolean,
|
override val isExternal: Boolean,
|
||||||
override val isTailrec: Boolean,
|
override val isTailrec: Boolean,
|
||||||
override val isSuspend: Boolean,
|
override val isSuspend: Boolean,
|
||||||
override val isOperator: Boolean,
|
override val isOperator: Boolean,
|
||||||
override val isInfix: Boolean,
|
override val isInfix: Boolean,
|
||||||
isExpect: Boolean,
|
override val isExpect: Boolean,
|
||||||
) : IrFunctionBase(startOffset, endOffset, origin, name, visibility, isInline, isExternal, isExpect, returnType), IrSimpleFunction {
|
) : IrSimpleFunction {
|
||||||
|
override val factory: IrFactory
|
||||||
|
get() = IrFactoryImpl
|
||||||
|
|
||||||
|
override lateinit var parent: IrDeclarationParent
|
||||||
|
override var annotations: List<IrConstructorCall> = emptyList()
|
||||||
|
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
|
override var returnType: IrType = returnType
|
||||||
|
get() = if (field === org.jetbrains.kotlin.ir.types.impl.IrUninitializedType) {
|
||||||
|
error("Return type is not initialized")
|
||||||
|
} else {
|
||||||
|
field
|
||||||
|
}
|
||||||
|
|
||||||
|
override var typeParameters: List<IrTypeParameter> = emptyList()
|
||||||
|
|
||||||
|
override var dispatchReceiverParameter: IrValueParameter? = null
|
||||||
|
override var extensionReceiverParameter: IrValueParameter? = null
|
||||||
|
override var valueParameters: List<IrValueParameter> = emptyList()
|
||||||
|
|
||||||
|
override var body: IrBody? = null
|
||||||
|
|
||||||
|
override var metadata: MetadataSource? = null
|
||||||
|
|
||||||
override var overriddenSymbols: List<IrSimpleFunctionSymbol> = emptyList()
|
override var overriddenSymbols: List<IrSimpleFunctionSymbol> = emptyList()
|
||||||
|
|
||||||
@Suppress("LeakingThis")
|
@Suppress("LeakingThis")
|
||||||
|
|||||||
+11
-4
@@ -19,23 +19,30 @@ package org.jetbrains.kotlin.ir.declarations.impl
|
|||||||
import org.jetbrains.kotlin.descriptors.VariableDescriptorWithAccessors
|
import org.jetbrains.kotlin.descriptors.VariableDescriptorWithAccessors
|
||||||
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
|
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrLocalDelegatedPropertySymbol
|
import org.jetbrains.kotlin.ir.symbols.IrLocalDelegatedPropertySymbol
|
||||||
import org.jetbrains.kotlin.ir.types.IrType
|
import org.jetbrains.kotlin.ir.types.IrType
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
class IrLocalDelegatedPropertyImpl(
|
class IrLocalDelegatedPropertyImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
origin: IrDeclarationOrigin,
|
override var origin: IrDeclarationOrigin,
|
||||||
override val symbol: IrLocalDelegatedPropertySymbol,
|
override val symbol: IrLocalDelegatedPropertySymbol,
|
||||||
override val name: Name,
|
override val name: Name,
|
||||||
override val type: IrType,
|
override val type: IrType,
|
||||||
override val isVar: Boolean
|
override val isVar: Boolean
|
||||||
) : IrDeclarationBase(startOffset, endOffset, origin), IrLocalDelegatedProperty {
|
) : IrLocalDelegatedProperty {
|
||||||
init {
|
init {
|
||||||
symbol.bind(this)
|
symbol.bind(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override val factory: IrFactory
|
||||||
|
get() = IrFactoryImpl
|
||||||
|
|
||||||
|
override lateinit var parent: IrDeclarationParent
|
||||||
|
override var annotations: List<IrConstructorCall> = emptyList()
|
||||||
|
|
||||||
@ObsoleteDescriptorBasedAPI
|
@ObsoleteDescriptorBasedAPI
|
||||||
override val descriptor: VariableDescriptorWithAccessors
|
override val descriptor: VariableDescriptorWithAccessors
|
||||||
get() = symbol.descriptor
|
get() = symbol.descriptor
|
||||||
|
|||||||
+11
-4
@@ -22,13 +22,14 @@ import org.jetbrains.kotlin.descriptors.Visibility
|
|||||||
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.descriptors.WrappedPropertyDescriptor
|
import org.jetbrains.kotlin.ir.descriptors.WrappedPropertyDescriptor
|
||||||
|
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol
|
import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
abstract class IrPropertyCommonImpl(
|
abstract class IrPropertyCommonImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
origin: IrDeclarationOrigin,
|
override var origin: IrDeclarationOrigin,
|
||||||
override val name: Name,
|
override val name: Name,
|
||||||
override var visibility: Visibility,
|
override var visibility: Visibility,
|
||||||
override val isVar: Boolean,
|
override val isVar: Boolean,
|
||||||
@@ -37,7 +38,13 @@ abstract class IrPropertyCommonImpl(
|
|||||||
override val isDelegated: Boolean,
|
override val isDelegated: Boolean,
|
||||||
override val isExternal: Boolean,
|
override val isExternal: Boolean,
|
||||||
override val isExpect: Boolean,
|
override val isExpect: Boolean,
|
||||||
) : IrDeclarationBase(startOffset, endOffset, origin), IrProperty {
|
) : IrProperty {
|
||||||
|
override val factory: IrFactory
|
||||||
|
get() = IrFactoryImpl
|
||||||
|
|
||||||
|
override lateinit var parent: IrDeclarationParent
|
||||||
|
override var annotations: List<IrConstructorCall> = emptyList()
|
||||||
|
|
||||||
override var backingField: IrField? = null
|
override var backingField: IrField? = null
|
||||||
|
|
||||||
override var getter: IrSimpleFunction? = null
|
override var getter: IrSimpleFunction? = null
|
||||||
|
|||||||
+12
-7
@@ -8,27 +8,32 @@ package org.jetbrains.kotlin.ir.declarations.impl
|
|||||||
import org.jetbrains.kotlin.descriptors.TypeAliasDescriptor
|
import org.jetbrains.kotlin.descriptors.TypeAliasDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.Visibility
|
import org.jetbrains.kotlin.descriptors.Visibility
|
||||||
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrTypeAlias
|
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrTypeParameter
|
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrTypeAliasSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrTypeAliasSymbol
|
||||||
import org.jetbrains.kotlin.ir.types.IrType
|
import org.jetbrains.kotlin.ir.types.IrType
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
class IrTypeAliasImpl(
|
class IrTypeAliasImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
override val symbol: IrTypeAliasSymbol,
|
override val symbol: IrTypeAliasSymbol,
|
||||||
override val name: Name,
|
override val name: Name,
|
||||||
override var visibility: Visibility,
|
override var visibility: Visibility,
|
||||||
override val expandedType: IrType,
|
override val expandedType: IrType,
|
||||||
override val isActual: Boolean,
|
override val isActual: Boolean,
|
||||||
origin: IrDeclarationOrigin
|
override var origin: IrDeclarationOrigin
|
||||||
) : IrDeclarationBase(startOffset, endOffset, origin), IrTypeAlias {
|
) : IrTypeAlias {
|
||||||
init {
|
init {
|
||||||
symbol.bind(this)
|
symbol.bind(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override val factory: IrFactory
|
||||||
|
get() = IrFactoryImpl
|
||||||
|
|
||||||
|
override lateinit var parent: IrDeclarationParent
|
||||||
|
override var annotations: List<IrConstructorCall> = emptyList()
|
||||||
|
|
||||||
@ObsoleteDescriptorBasedAPI
|
@ObsoleteDescriptorBasedAPI
|
||||||
override val descriptor: TypeAliasDescriptor
|
override val descriptor: TypeAliasDescriptor
|
||||||
get() = symbol.descriptor
|
get() = symbol.descriptor
|
||||||
|
|||||||
+13
-4
@@ -18,8 +18,11 @@ package org.jetbrains.kotlin.ir.declarations.impl
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor
|
import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor
|
||||||
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.IrFactory
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrTypeParameter
|
import org.jetbrains.kotlin.ir.declarations.IrTypeParameter
|
||||||
|
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol
|
||||||
import org.jetbrains.kotlin.ir.types.IrType
|
import org.jetbrains.kotlin.ir.types.IrType
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
@@ -27,19 +30,25 @@ import org.jetbrains.kotlin.types.Variance
|
|||||||
import org.jetbrains.kotlin.utils.SmartList
|
import org.jetbrains.kotlin.utils.SmartList
|
||||||
|
|
||||||
class IrTypeParameterImpl(
|
class IrTypeParameterImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
origin: IrDeclarationOrigin,
|
override var origin: IrDeclarationOrigin,
|
||||||
override val symbol: IrTypeParameterSymbol,
|
override val symbol: IrTypeParameterSymbol,
|
||||||
override val name: Name,
|
override val name: Name,
|
||||||
override val index: Int,
|
override val index: Int,
|
||||||
override val isReified: Boolean,
|
override val isReified: Boolean,
|
||||||
override val variance: Variance
|
override val variance: Variance
|
||||||
) : IrDeclarationBase(startOffset, endOffset, origin), IrTypeParameter {
|
) : IrTypeParameter {
|
||||||
init {
|
init {
|
||||||
symbol.bind(this)
|
symbol.bind(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override val factory: IrFactory
|
||||||
|
get() = IrFactoryImpl
|
||||||
|
|
||||||
|
override lateinit var parent: IrDeclarationParent
|
||||||
|
override var annotations: List<IrConstructorCall> = emptyList()
|
||||||
|
|
||||||
@ObsoleteDescriptorBasedAPI
|
@ObsoleteDescriptorBasedAPI
|
||||||
override val descriptor: TypeParameterDescriptor
|
override val descriptor: TypeParameterDescriptor
|
||||||
get() = symbol.descriptor
|
get() = symbol.descriptor
|
||||||
|
|||||||
+13
-4
@@ -18,17 +18,20 @@ package org.jetbrains.kotlin.ir.declarations.impl
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.ParameterDescriptor
|
import org.jetbrains.kotlin.descriptors.ParameterDescriptor
|
||||||
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.IrFactory
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrValueParameter
|
import org.jetbrains.kotlin.ir.declarations.IrValueParameter
|
||||||
|
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
|
import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrValueParameterSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrValueParameterSymbol
|
||||||
import org.jetbrains.kotlin.ir.types.IrType
|
import org.jetbrains.kotlin.ir.types.IrType
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
class IrValueParameterImpl(
|
class IrValueParameterImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
origin: IrDeclarationOrigin,
|
override var origin: IrDeclarationOrigin,
|
||||||
override val symbol: IrValueParameterSymbol,
|
override val symbol: IrValueParameterSymbol,
|
||||||
override val name: Name,
|
override val name: Name,
|
||||||
override val index: Int,
|
override val index: Int,
|
||||||
@@ -36,7 +39,7 @@ class IrValueParameterImpl(
|
|||||||
override val varargElementType: IrType?,
|
override val varargElementType: IrType?,
|
||||||
override val isCrossinline: Boolean,
|
override val isCrossinline: Boolean,
|
||||||
override val isNoinline: Boolean
|
override val isNoinline: Boolean
|
||||||
) : IrDeclarationBase(startOffset, endOffset, origin), IrValueParameter {
|
) : IrValueParameter {
|
||||||
@ObsoleteDescriptorBasedAPI
|
@ObsoleteDescriptorBasedAPI
|
||||||
override val descriptor: ParameterDescriptor
|
override val descriptor: ParameterDescriptor
|
||||||
get() = symbol.descriptor
|
get() = symbol.descriptor
|
||||||
@@ -45,5 +48,11 @@ class IrValueParameterImpl(
|
|||||||
symbol.bind(this)
|
symbol.bind(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override val factory: IrFactory
|
||||||
|
get() = IrFactoryImpl
|
||||||
|
|
||||||
|
override lateinit var parent: IrDeclarationParent
|
||||||
|
override var annotations: List<IrConstructorCall> = emptyList()
|
||||||
|
|
||||||
override var defaultValue: IrExpressionBody? = null
|
override var defaultValue: IrExpressionBody? = null
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user