[IR] simplify Carriers (remove type parameters)
This commit is contained in:
committed by
Anton Bannykh
parent
adf5ee394e
commit
916a5f367c
@@ -386,11 +386,9 @@ fun usefulDeclarations(roots: Iterable<IrDeclaration>, context: JsIrBackendConte
|
||||
) {
|
||||
declaration.enqueue(klass, "annotated by @JsName")
|
||||
}
|
||||
}
|
||||
|
||||
// TODO is this needed?
|
||||
for (declaration in ArrayList(klass.declarations)) {
|
||||
// TODO this is a hack.
|
||||
// A hack to enforce property lowering.
|
||||
// Until a getter is accessed it doesn't get moved to the declaration list.
|
||||
if (declaration is IrProperty) {
|
||||
fun IrSimpleFunction.enqueue(description: String) {
|
||||
findOverriddenContagiousDeclaration()?.let { enqueue(it, description) }
|
||||
|
||||
+6
-12
@@ -24,13 +24,13 @@ import org.jetbrains.kotlin.ir.declarations.impl.carriers.DeclarationCarrier
|
||||
import org.jetbrains.kotlin.ir.expressions.IrBody
|
||||
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||
|
||||
abstract class IrDeclarationBase<T : DeclarationCarrier<T>>(
|
||||
abstract class IrDeclarationBase<T : DeclarationCarrier>(
|
||||
startOffset: Int,
|
||||
endOffset: Int,
|
||||
origin: IrDeclarationOrigin
|
||||
) : IrPersistingElementBase<T>(startOffset, endOffset),
|
||||
IrDeclaration,
|
||||
DeclarationCarrier<T> {
|
||||
DeclarationCarrier {
|
||||
|
||||
override var parentField: IrDeclarationParent? = null
|
||||
|
||||
@@ -75,18 +75,18 @@ abstract class IrDeclarationBase<T : DeclarationCarrier<T>>(
|
||||
}
|
||||
}
|
||||
|
||||
abstract class IrPersistingElementBase<T : Carrier<T>>(
|
||||
abstract class IrPersistingElementBase<T : Carrier>(
|
||||
startOffset: Int,
|
||||
endOffset: Int
|
||||
) : IrElementBase(startOffset, endOffset),
|
||||
Carrier<T> {
|
||||
Carrier {
|
||||
|
||||
override var lastModified: Int = stageController.currentStage
|
||||
|
||||
var loweredUpTo = stageController.currentStage
|
||||
|
||||
// TODO Array<T>?
|
||||
private var values: Array<Any?>? = null
|
||||
private var values: Array<Carrier>? = null
|
||||
|
||||
val createdOn: Int = stageController.currentStage
|
||||
// get() = values?.let { (it[0] as T).lastModified } ?: lastModified
|
||||
@@ -140,13 +140,7 @@ abstract class IrPersistingElementBase<T : Carrier<T>>(
|
||||
if (stage == lastModified) {
|
||||
return this as T
|
||||
} else {
|
||||
val newValues = values?.let { oldValues ->
|
||||
oldValues.copyOf(oldValues.size + 1)
|
||||
} ?: arrayOfNulls<Any?>(1)
|
||||
|
||||
newValues[newValues.size - 1] = this.clone()
|
||||
|
||||
values = newValues
|
||||
values = (values ?: emptyArray()) + this.clone() as T
|
||||
}
|
||||
|
||||
this.lastModified = stage
|
||||
|
||||
@@ -27,7 +27,7 @@ import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
|
||||
abstract class IrFunctionBase<T : FunctionBaseCarrier<T>>(
|
||||
abstract class IrFunctionBase<T : FunctionBaseCarrier>(
|
||||
startOffset: Int,
|
||||
endOffset: Int,
|
||||
origin: IrDeclarationOrigin,
|
||||
@@ -40,7 +40,7 @@ abstract class IrFunctionBase<T : FunctionBaseCarrier<T>>(
|
||||
) :
|
||||
IrDeclarationBase<T>(startOffset, endOffset, origin),
|
||||
IrFunction,
|
||||
FunctionBaseCarrier<T> {
|
||||
FunctionBaseCarrier {
|
||||
|
||||
override var returnTypeFieldField: IrType = returnType
|
||||
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent
|
||||
import org.jetbrains.kotlin.ir.expressions.IrBlockBody
|
||||
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||
|
||||
interface AnonymousInitializerCarrier : DeclarationCarrier<AnonymousInitializerCarrier> {
|
||||
interface AnonymousInitializerCarrier : DeclarationCarrier {
|
||||
var bodyField: IrBlockBody?
|
||||
|
||||
override fun clone(): AnonymousInitializerCarrier {
|
||||
|
||||
+1
-1
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.ir.declarations.impl.carriers
|
||||
|
||||
import org.jetbrains.kotlin.ir.declarations.IrDeclaration
|
||||
|
||||
interface BodyCarrier : Carrier<BodyCarrier> {
|
||||
interface BodyCarrier : Carrier {
|
||||
|
||||
var containerField: IrDeclaration?
|
||||
|
||||
|
||||
+2
-4
@@ -5,10 +5,8 @@
|
||||
|
||||
package org.jetbrains.kotlin.ir.declarations.impl.carriers
|
||||
|
||||
// TODO degenerify
|
||||
// TODO degenerify
|
||||
interface Carrier<in T : Carrier<T>> {
|
||||
interface Carrier {
|
||||
val lastModified: Int
|
||||
|
||||
fun clone(): Carrier<T>
|
||||
fun clone(): Carrier
|
||||
}
|
||||
+1
-1
@@ -11,7 +11,7 @@ import org.jetbrains.kotlin.ir.declarations.*
|
||||
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||
import org.jetbrains.kotlin.ir.types.IrType
|
||||
|
||||
interface ClassCarrier : DeclarationCarrier<ClassCarrier> {
|
||||
interface ClassCarrier : DeclarationCarrier {
|
||||
var thisReceiverField: IrValueParameter?
|
||||
var metadataField: MetadataSource?
|
||||
var visibilityField: Visibility
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||
import org.jetbrains.kotlin.ir.types.IrType
|
||||
|
||||
|
||||
interface ConstructorCarrier : FunctionBaseCarrier<ConstructorCarrier> {
|
||||
interface ConstructorCarrier : FunctionBaseCarrier {
|
||||
|
||||
override fun clone(): ConstructorCarrier {
|
||||
return ConstructorCarrierImpl(
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent
|
||||
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||
import org.jetbrains.kotlin.utils.SmartList
|
||||
|
||||
interface DeclarationCarrier<in T : DeclarationCarrier<T>>: Carrier<T> {
|
||||
interface DeclarationCarrier: Carrier {
|
||||
var parentField: IrDeclarationParent?
|
||||
var originField: IrDeclarationOrigin
|
||||
var annotationsField: List<IrConstructorCall>
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@ import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent
|
||||
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||
import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
|
||||
|
||||
interface EnumEntryCarrier : DeclarationCarrier<EnumEntryCarrier> {
|
||||
interface EnumEntryCarrier : DeclarationCarrier {
|
||||
var correspondingClassField: IrClass?
|
||||
var initializerExpressionField: IrExpressionBody?
|
||||
|
||||
|
||||
+2
-2
@@ -9,7 +9,7 @@ import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
||||
import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent
|
||||
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||
|
||||
interface ErrorCarrier : DeclarationCarrier<ErrorCarrier> {
|
||||
interface ErrorCarrier : DeclarationCarrier {
|
||||
|
||||
override fun clone(): ErrorCarrier {
|
||||
return ErrorCarrierImpl(lastModified, parentField, originField, annotationsField)
|
||||
@@ -21,4 +21,4 @@ class ErrorCarrierImpl(
|
||||
override var parentField: IrDeclarationParent?,
|
||||
override var originField: IrDeclarationOrigin,
|
||||
override var annotationsField: List<IrConstructorCall>
|
||||
) : ErrorCarrier
|
||||
) : ErrorCarrier
|
||||
+1
-1
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||
import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
|
||||
import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol
|
||||
|
||||
interface FieldCarrier : DeclarationCarrier<FieldCarrier> {
|
||||
interface FieldCarrier : DeclarationCarrier {
|
||||
var initializerField: IrExpressionBody?
|
||||
var correspondingPropertySymbolField: IrPropertySymbol?
|
||||
var metadataField: MetadataSource?
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.ir.declarations.MetadataSource
|
||||
import org.jetbrains.kotlin.ir.expressions.IrBody
|
||||
import org.jetbrains.kotlin.ir.types.IrType
|
||||
|
||||
interface FunctionBaseCarrier<T : FunctionBaseCarrier<T>> : DeclarationCarrier<T> {
|
||||
interface FunctionBaseCarrier : DeclarationCarrier {
|
||||
var returnTypeFieldField: IrType
|
||||
var dispatchReceiverParameterField: IrValueParameter?
|
||||
var extensionReceiverParameterField: IrValueParameter?
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol
|
||||
import org.jetbrains.kotlin.ir.types.IrType
|
||||
|
||||
interface FunctionCarrier : FunctionBaseCarrier<FunctionCarrier> {
|
||||
interface FunctionCarrier : FunctionBaseCarrier {
|
||||
var correspondingPropertySymbolField: IrPropertySymbol?
|
||||
var overriddenSymbolsField: List<IrSimpleFunctionSymbol>
|
||||
var attributeOwnerIdField: IrAttributeContainer
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.ir.declarations.impl.carriers
|
||||
import org.jetbrains.kotlin.ir.declarations.*
|
||||
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||
|
||||
interface LocalDelegatedPropertyCarrier : DeclarationCarrier<LocalDelegatedPropertyCarrier> {
|
||||
interface LocalDelegatedPropertyCarrier : DeclarationCarrier {
|
||||
var delegateField: IrVariable?
|
||||
var getterField: IrFunction?
|
||||
var setterField: IrFunction?
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.ir.declarations.impl.carriers
|
||||
import org.jetbrains.kotlin.ir.declarations.*
|
||||
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||
|
||||
interface PropertyCarrier : DeclarationCarrier<PropertyCarrier> {
|
||||
interface PropertyCarrier : DeclarationCarrier {
|
||||
var backingFieldField: IrField?
|
||||
var getterField: IrSimpleFunction?
|
||||
var setterField: IrSimpleFunction?
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent
|
||||
import org.jetbrains.kotlin.ir.declarations.IrTypeParameter
|
||||
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||
|
||||
interface TypeAliasCarrier : DeclarationCarrier<TypeAliasCarrier> {
|
||||
interface TypeAliasCarrier : DeclarationCarrier {
|
||||
|
||||
var typeParametersField: List<IrTypeParameter>
|
||||
|
||||
|
||||
+2
-2
@@ -9,7 +9,7 @@ import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
||||
import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent
|
||||
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||
|
||||
interface TypeParameterCarrier : DeclarationCarrier<TypeParameterCarrier> {
|
||||
interface TypeParameterCarrier : DeclarationCarrier {
|
||||
|
||||
override fun clone(): TypeParameterCarrier {
|
||||
return TypeParameterCarrierImpl(lastModified, parentField, originField, annotationsField)
|
||||
@@ -21,4 +21,4 @@ class TypeParameterCarrierImpl(
|
||||
override var parentField: IrDeclarationParent?,
|
||||
override var originField: IrDeclarationOrigin,
|
||||
override var annotationsField: List<IrConstructorCall>
|
||||
) : TypeParameterCarrier
|
||||
) : TypeParameterCarrier
|
||||
+1
-1
@@ -10,7 +10,7 @@ import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent
|
||||
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||
import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
|
||||
|
||||
interface ValueParameterCarrier : DeclarationCarrier<ValueParameterCarrier> {
|
||||
interface ValueParameterCarrier : DeclarationCarrier {
|
||||
var defaultValueField: IrExpressionBody?
|
||||
|
||||
override fun clone(): ValueParameterCarrier {
|
||||
|
||||
Reference in New Issue
Block a user