[IR] Make isHidden and isAssignable explicit on IrValueParameter.
There were a couple of places where they were confused and isAssignable was passed as a positional parameter in the position of isHidden.
This commit is contained in:
committed by
Alexander Udalov
parent
3dbe02b7fe
commit
5d9e86863a
@@ -338,7 +338,8 @@ internal fun IrDeclarationParent.declareThisReceiverParameter(
|
|||||||
symbolTable.irFactory.createValueParameter(
|
symbolTable.irFactory.createValueParameter(
|
||||||
startOffset, endOffset, thisOrigin, symbol,
|
startOffset, endOffset, thisOrigin, symbol,
|
||||||
Name.special("<this>"), UNDEFINED_PARAMETER_INDEX, thisType,
|
Name.special("<this>"), UNDEFINED_PARAMETER_INDEX, thisType,
|
||||||
varargElementType = null, isCrossinline = false, isNoinline = false, isAssignable = false
|
varargElementType = null, isCrossinline = false, isNoinline = false,
|
||||||
|
isHidden = false, isAssignable = false
|
||||||
).apply {
|
).apply {
|
||||||
this.parent = this@declareThisReceiverParameter
|
this.parent = this@declareThisReceiverParameter
|
||||||
receiverDescriptor.bind(this)
|
receiverDescriptor.bind(this)
|
||||||
|
|||||||
+4
-2
@@ -269,7 +269,8 @@ class Fir2IrDeclarationStorage(
|
|||||||
startOffset, endOffset, IrDeclarationOrigin.DEFINED, symbol,
|
startOffset, endOffset, IrDeclarationOrigin.DEFINED, symbol,
|
||||||
Name.special("<set-?>"), 0, type,
|
Name.special("<set-?>"), 0, type,
|
||||||
varargElementType = null,
|
varargElementType = null,
|
||||||
isCrossinline = false, isNoinline = false, isAssignable = false
|
isCrossinline = false, isNoinline = false,
|
||||||
|
isHidden = false, isAssignable = false
|
||||||
).apply {
|
).apply {
|
||||||
this.parent = parent
|
this.parent = parent
|
||||||
descriptor.bind(this)
|
descriptor.bind(this)
|
||||||
@@ -895,7 +896,8 @@ class Fir2IrDeclarationStorage(
|
|||||||
valueParameter.name, index, type,
|
valueParameter.name, index, type,
|
||||||
if (!valueParameter.isVararg) null
|
if (!valueParameter.isVararg) null
|
||||||
else valueParameter.returnTypeRef.coneType.arrayElementType()?.toIrType(typeContext),
|
else valueParameter.returnTypeRef.coneType.arrayElementType()?.toIrType(typeContext),
|
||||||
valueParameter.isCrossinline, valueParameter.isNoinline
|
isCrossinline = valueParameter.isCrossinline, isNoinline = valueParameter.isNoinline,
|
||||||
|
isHidden = false, isAssignable = false
|
||||||
).apply {
|
).apply {
|
||||||
descriptor.bind(this)
|
descriptor.bind(this)
|
||||||
if (valueParameter.defaultValue.let {
|
if (valueParameter.defaultValue.let {
|
||||||
|
|||||||
+1
@@ -266,6 +266,7 @@ internal class AdapterGenerator(
|
|||||||
varargElementType = null,
|
varargElementType = null,
|
||||||
isCrossinline = false,
|
isCrossinline = false,
|
||||||
isNoinline = false,
|
isNoinline = false,
|
||||||
|
isHidden = false,
|
||||||
isAssignable = false
|
isAssignable = false
|
||||||
).also { irAdapterValueParameter ->
|
).also { irAdapterValueParameter ->
|
||||||
descriptor.bind(irAdapterValueParameter)
|
descriptor.bind(irAdapterValueParameter)
|
||||||
|
|||||||
+1
-1
@@ -295,7 +295,7 @@ class DataClassMembersGenerator(val components: Fir2IrComponents) {
|
|||||||
) { symbol ->
|
) { symbol ->
|
||||||
components.irFactory.createValueParameter(
|
components.irFactory.createValueParameter(
|
||||||
UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, symbol, name, index, type, null,
|
UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, symbol, name, index, type, null,
|
||||||
isCrossinline = false, isNoinline = false, isAssignable = false
|
isCrossinline = false, isNoinline = false, isHidden = false, isAssignable = false
|
||||||
)
|
)
|
||||||
}.apply {
|
}.apply {
|
||||||
parent = irFunction
|
parent = irFunction
|
||||||
|
|||||||
@@ -144,7 +144,8 @@ fun IrValueParameter.copyTo(
|
|||||||
}
|
}
|
||||||
return factory.createValueParameter(
|
return factory.createValueParameter(
|
||||||
startOffset, endOffset, origin, symbol,
|
startOffset, endOffset, origin, symbol,
|
||||||
name, index, type, varargElementType, isCrossinline, isNoinline, isAssignable = isAssignable
|
name, index, type, varargElementType, isCrossinline = isCrossinline,
|
||||||
|
isNoinline = isNoinline, isHidden = false, isAssignable = isAssignable
|
||||||
).also {
|
).also {
|
||||||
descriptor.bind(it)
|
descriptor.bind(it)
|
||||||
it.parent = irFunction
|
it.parent = irFunction
|
||||||
@@ -173,7 +174,8 @@ fun IrFunction.copyReceiverParametersFrom(from: IrFunction, substitutionMap: Map
|
|||||||
name, index,
|
name, index,
|
||||||
type.substitute(substitutionMap),
|
type.substitute(substitutionMap),
|
||||||
varargElementType?.substitute(substitutionMap),
|
varargElementType?.substitute(substitutionMap),
|
||||||
isCrossinline, isNoinline
|
isCrossinline, isNoinline,
|
||||||
|
isHidden, isAssignable
|
||||||
).also { parameter ->
|
).also { parameter ->
|
||||||
parameter.parent = this@copyReceiverParametersFrom
|
parameter.parent = this@copyReceiverParametersFrom
|
||||||
newDescriptor.bind(this)
|
newDescriptor.bind(this)
|
||||||
@@ -428,7 +430,9 @@ fun IrFunction.createDispatchReceiverParameter(origin: IrDeclarationOrigin? = nu
|
|||||||
parentAsClass.defaultType,
|
parentAsClass.defaultType,
|
||||||
null,
|
null,
|
||||||
isCrossinline = false,
|
isCrossinline = false,
|
||||||
isNoinline = false
|
isNoinline = false,
|
||||||
|
isHidden = false,
|
||||||
|
isAssignable = false
|
||||||
).apply {
|
).apply {
|
||||||
parent = this@createDispatchReceiverParameter
|
parent = this@createDispatchReceiverParameter
|
||||||
newDescriptor.bind(this)
|
newDescriptor.bind(this)
|
||||||
|
|||||||
+2
-1
@@ -211,7 +211,8 @@ fun <D> buildReceiverParameter(
|
|||||||
parent.factory.createValueParameter(
|
parent.factory.createValueParameter(
|
||||||
startOffset, endOffset, origin,
|
startOffset, endOffset, origin,
|
||||||
IrValueParameterSymbolImpl(wrappedDescriptor),
|
IrValueParameterSymbolImpl(wrappedDescriptor),
|
||||||
RECEIVER_PARAMETER_NAME, -1, type, null, isCrossinline = false, isNoinline = false, isAssignable = false
|
RECEIVER_PARAMETER_NAME, -1, type, null, isCrossinline = false, isNoinline = false,
|
||||||
|
isHidden = false, isAssignable = false
|
||||||
).also {
|
).also {
|
||||||
wrappedDescriptor.bind(it)
|
wrappedDescriptor.bind(it)
|
||||||
it.parent = parent
|
it.parent = parent
|
||||||
|
|||||||
+2
-1
@@ -386,7 +386,8 @@ private fun StatementGenerator.createFunctionForSuspendConversion(
|
|||||||
) {
|
) {
|
||||||
context.irFactory.createValueParameter(
|
context.irFactory.createValueParameter(
|
||||||
startOffset, endOffset, IrDeclarationOrigin.ADAPTER_PARAMETER_FOR_SUSPEND_CONVERSION,
|
startOffset, endOffset, IrDeclarationOrigin.ADAPTER_PARAMETER_FOR_SUSPEND_CONVERSION,
|
||||||
it, Name.identifier(name), index, type, varargElementType = null, isCrossinline = false, isNoinline = false
|
it, Name.identifier(name), index, type, varargElementType = null, isCrossinline = false, isNoinline = false,
|
||||||
|
isHidden = false, isAssignable = false
|
||||||
)
|
)
|
||||||
}.also {
|
}.also {
|
||||||
descriptor.bind(it)
|
descriptor.bind(it)
|
||||||
|
|||||||
+1
-1
@@ -383,7 +383,7 @@ class ReflectionReferencesGenerator(statementGenerator: StatementGenerator) : St
|
|||||||
name,
|
name,
|
||||||
index,
|
index,
|
||||||
type.toIrType(),
|
type.toIrType(),
|
||||||
varargElementType = null, isCrossinline = false, isNoinline = false, isAssignable = false
|
varargElementType = null, isCrossinline = false, isNoinline = false, isHidden = false, isAssignable = false
|
||||||
).also { irAdapterValueParameter ->
|
).also { irAdapterValueParameter ->
|
||||||
descriptor.bind(irAdapterValueParameter)
|
descriptor.bind(irAdapterValueParameter)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -74,7 +74,8 @@ class ScriptGenerator(declarationGenerator: DeclarationGenerator) : DeclarationG
|
|||||||
origin, symbol, context.symbolTable.nameProvider.nameForDeclaration(descriptor),
|
origin, symbol, context.symbolTable.nameProvider.nameForDeclaration(descriptor),
|
||||||
if (index != -1) index else descriptor.indexOrMinusOne,
|
if (index != -1) index else descriptor.indexOrMinusOne,
|
||||||
type, varargElementType,
|
type, varargElementType,
|
||||||
descriptor.isCrossinline, descriptor.isNoinline, false
|
descriptor.isCrossinline, descriptor.isNoinline,
|
||||||
|
isHidden = false, isAssignable = false
|
||||||
)
|
)
|
||||||
} .also { it.parent = irScript }
|
} .also { it.parent = irScript }
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -39,8 +39,8 @@ class IrValueParameterImpl(
|
|||||||
override var varargElementType: IrType?,
|
override var varargElementType: IrType?,
|
||||||
override val isCrossinline: Boolean,
|
override val isCrossinline: Boolean,
|
||||||
override val isNoinline: Boolean,
|
override val isNoinline: Boolean,
|
||||||
override val isHidden: Boolean = false,
|
override val isHidden: Boolean,
|
||||||
override val isAssignable: Boolean = false
|
override val isAssignable: Boolean
|
||||||
) : IrValueParameter() {
|
) : IrValueParameter() {
|
||||||
@ObsoleteDescriptorBasedAPI
|
@ObsoleteDescriptorBasedAPI
|
||||||
override val descriptor: ParameterDescriptor
|
override val descriptor: ParameterDescriptor
|
||||||
|
|||||||
+1
-1
@@ -41,7 +41,7 @@ internal class PersistentIrValueParameter(
|
|||||||
varargElementType: IrType?,
|
varargElementType: IrType?,
|
||||||
override val isCrossinline: Boolean,
|
override val isCrossinline: Boolean,
|
||||||
override val isNoinline: Boolean,
|
override val isNoinline: Boolean,
|
||||||
override val isHidden: Boolean = false,
|
override val isHidden: Boolean,
|
||||||
override val isAssignable: Boolean
|
override val isAssignable: Boolean
|
||||||
) : IrValueParameter(),
|
) : IrValueParameter(),
|
||||||
PersistentIrDeclarationBase<ValueParameterCarrier>,
|
PersistentIrDeclarationBase<ValueParameterCarrier>,
|
||||||
|
|||||||
@@ -199,8 +199,8 @@ interface IrFactory {
|
|||||||
varargElementType: IrType?,
|
varargElementType: IrType?,
|
||||||
isCrossinline: Boolean,
|
isCrossinline: Boolean,
|
||||||
isNoinline: Boolean,
|
isNoinline: Boolean,
|
||||||
isHidden: Boolean = false,
|
isHidden: Boolean,
|
||||||
isAssignable: Boolean = false
|
isAssignable: Boolean
|
||||||
): IrValueParameter
|
): IrValueParameter
|
||||||
|
|
||||||
// Bodies
|
// Bodies
|
||||||
|
|||||||
+2
-1
@@ -32,7 +32,8 @@ interface IrLazyDeclarationBase : IrDeclaration {
|
|||||||
fun ReceiverParameterDescriptor.generateReceiverParameterStub(): IrValueParameter =
|
fun ReceiverParameterDescriptor.generateReceiverParameterStub(): IrValueParameter =
|
||||||
factory.createValueParameter(
|
factory.createValueParameter(
|
||||||
UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, IrValueParameterSymbolImpl(this),
|
UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, IrValueParameterSymbolImpl(this),
|
||||||
name, -1, type.toIrType(), null, isCrossinline = false, isNoinline = false, isAssignable = false
|
name, -1, type.toIrType(), null, isCrossinline = false, isNoinline = false,
|
||||||
|
isHidden = false, isAssignable = false
|
||||||
)
|
)
|
||||||
|
|
||||||
fun generateMemberStubs(memberScope: MemberScope, container: MutableList<IrDeclaration>) {
|
fun generateMemberStubs(memberScope: MemberScope, container: MutableList<IrDeclaration>) {
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ class IrBuiltIns(
|
|||||||
val valueParameterSymbol = IrValueParameterSymbolImpl(valueParameterDescriptor)
|
val valueParameterSymbol = IrValueParameterSymbolImpl(valueParameterDescriptor)
|
||||||
irFactory.createValueParameter(
|
irFactory.createValueParameter(
|
||||||
UNDEFINED_OFFSET, UNDEFINED_OFFSET, BUILTIN_OPERATOR, valueParameterSymbol, Name.identifier("arg$i"), i,
|
UNDEFINED_OFFSET, UNDEFINED_OFFSET, BUILTIN_OPERATOR, valueParameterSymbol, Name.identifier("arg$i"), i,
|
||||||
valueParameterType, null, isCrossinline = false, isNoinline = false, isAssignable = false
|
valueParameterType, null, isCrossinline = false, isNoinline = false, isHidden = false, isAssignable = false
|
||||||
).apply {
|
).apply {
|
||||||
parent = operator
|
parent = operator
|
||||||
}
|
}
|
||||||
@@ -165,7 +165,7 @@ class IrBuiltIns(
|
|||||||
val valueParameterSymbol = IrValueParameterSymbolImpl(valueParameterDescriptor)
|
val valueParameterSymbol = IrValueParameterSymbolImpl(valueParameterDescriptor)
|
||||||
val valueParameter = irFactory.createValueParameter(
|
val valueParameter = irFactory.createValueParameter(
|
||||||
UNDEFINED_OFFSET, UNDEFINED_OFFSET, BUILTIN_OPERATOR, valueParameterSymbol, Name.identifier("arg0"), 0,
|
UNDEFINED_OFFSET, UNDEFINED_OFFSET, BUILTIN_OPERATOR, valueParameterSymbol, Name.identifier("arg0"), 0,
|
||||||
valueIrType, null, isCrossinline = false, isNoinline = false, isAssignable = false
|
valueIrType, null, isCrossinline = false, isNoinline = false, isHidden = false, isAssignable = false
|
||||||
)
|
)
|
||||||
|
|
||||||
valueParameter.parent = operator
|
valueParameter.parent = operator
|
||||||
|
|||||||
@@ -269,6 +269,7 @@ class IrFunctionFactory(private val irBuiltIns: IrBuiltIns, private val symbolTa
|
|||||||
offset, offset, classOrigin, vSymbol, Name.special("<this>"), -1, type, null,
|
offset, offset, classOrigin, vSymbol, Name.special("<this>"), -1, type, null,
|
||||||
isCrossinline = false,
|
isCrossinline = false,
|
||||||
isNoinline = false,
|
isNoinline = false,
|
||||||
|
isHidden = false,
|
||||||
isAssignable = false
|
isAssignable = false
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -334,6 +335,7 @@ class IrFunctionFactory(private val irBuiltIns: IrBuiltIns, private val symbolTa
|
|||||||
offset, offset, memberOrigin, vSymbol, Name.identifier("p$i"), i - 1, vType, null,
|
offset, offset, memberOrigin, vSymbol, Name.identifier("p$i"), i - 1, vType, null,
|
||||||
isCrossinline = false,
|
isCrossinline = false,
|
||||||
isNoinline = false,
|
isNoinline = false,
|
||||||
|
isHidden = false,
|
||||||
isAssignable = false
|
isAssignable = false
|
||||||
)
|
)
|
||||||
vDeclaration.parent = fDeclaration
|
vDeclaration.parent = fDeclaration
|
||||||
@@ -366,7 +368,7 @@ class IrFunctionFactory(private val irBuiltIns: IrBuiltIns, private val symbolTa
|
|||||||
private fun IrFunction.createValueParameter(descriptor: ParameterDescriptor): IrValueParameter = with(descriptor) {
|
private fun IrFunction.createValueParameter(descriptor: ParameterDescriptor): IrValueParameter = with(descriptor) {
|
||||||
irFactory.createValueParameter(
|
irFactory.createValueParameter(
|
||||||
offset, offset, memberOrigin, IrValueParameterSymbolImpl(this), name, indexOrMinusOne, toIrType(type),
|
offset, offset, memberOrigin, IrValueParameterSymbolImpl(this), name, indexOrMinusOne, toIrType(type),
|
||||||
(this as? ValueParameterDescriptor)?.varargElementType?.let(::toIrType), isCrossinline, isNoinline
|
(this as? ValueParameterDescriptor)?.varargElementType?.let(::toIrType), isCrossinline, isNoinline, false, false
|
||||||
).also {
|
).also {
|
||||||
it.parent = this@createValueParameter
|
it.parent = this@createValueParameter
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -96,7 +96,8 @@ class FakeOverrideCopier(
|
|||||||
declaration.varargElementType?.remapType(),
|
declaration.varargElementType?.remapType(),
|
||||||
declaration.isCrossinline,
|
declaration.isCrossinline,
|
||||||
declaration.isNoinline,
|
declaration.isNoinline,
|
||||||
false
|
declaration.isHidden,
|
||||||
|
declaration.isAssignable
|
||||||
).apply {
|
).apply {
|
||||||
transformAnnotations(declaration)
|
transformAnnotations(declaration)
|
||||||
// Don't set the default value for fake overrides.
|
// Don't set the default value for fake overrides.
|
||||||
|
|||||||
@@ -246,7 +246,7 @@ class DeclarationStubGenerator(
|
|||||||
internal fun generateValueParameterStub(descriptor: ValueParameterDescriptor): IrValueParameter = with(descriptor) {
|
internal fun generateValueParameterStub(descriptor: ValueParameterDescriptor): IrValueParameter = with(descriptor) {
|
||||||
symbolTable.irFactory.createValueParameter(
|
symbolTable.irFactory.createValueParameter(
|
||||||
UNDEFINED_OFFSET, UNDEFINED_OFFSET, computeOrigin(this), IrValueParameterSymbolImpl(this), name, index, type.toIrType(),
|
UNDEFINED_OFFSET, UNDEFINED_OFFSET, computeOrigin(this), IrValueParameterSymbolImpl(this), name, index, type.toIrType(),
|
||||||
varargElementType?.toIrType(), isCrossinline, isNoinline, false
|
varargElementType?.toIrType(), isCrossinline, isNoinline, isHidden = false, isAssignable = false
|
||||||
).also { irValueParameter ->
|
).also { irValueParameter ->
|
||||||
if (descriptor.declaresDefaultValue()) {
|
if (descriptor.declaresDefaultValue()) {
|
||||||
irValueParameter.defaultValue =
|
irValueParameter.defaultValue =
|
||||||
|
|||||||
@@ -351,6 +351,7 @@ open class DeepCopyIrTreeWithSymbols(
|
|||||||
declaration.varargElementType?.remapType(),
|
declaration.varargElementType?.remapType(),
|
||||||
declaration.isCrossinline,
|
declaration.isCrossinline,
|
||||||
declaration.isNoinline,
|
declaration.isNoinline,
|
||||||
|
declaration.isHidden,
|
||||||
declaration.isAssignable
|
declaration.isAssignable
|
||||||
).apply {
|
).apply {
|
||||||
transformAnnotations(declaration)
|
transformAnnotations(declaration)
|
||||||
|
|||||||
@@ -901,7 +901,8 @@ class SymbolTable(
|
|||||||
valueParameterFactory: (IrValueParameterSymbol) -> IrValueParameter = {
|
valueParameterFactory: (IrValueParameterSymbol) -> IrValueParameter = {
|
||||||
irFactory.createValueParameter(
|
irFactory.createValueParameter(
|
||||||
startOffset, endOffset, origin, it, name ?: nameProvider.nameForDeclaration(descriptor),
|
startOffset, endOffset, origin, it, name ?: nameProvider.nameForDeclaration(descriptor),
|
||||||
descriptor.indexOrMinusOne, type, varargElementType, descriptor.isCrossinline, descriptor.isNoinline, false
|
descriptor.indexOrMinusOne, type, varargElementType, descriptor.isCrossinline, descriptor.isNoinline,
|
||||||
|
isHidden = false, isAssignable = false
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
): IrValueParameter =
|
): IrValueParameter =
|
||||||
|
|||||||
+2
-1
@@ -244,7 +244,8 @@ private fun TranslationPluginContext.declareParameterStub(parameterDescriptor: P
|
|||||||
val varargElementType = parameterDescriptor.varargElementType?.let { typeTranslator.translateType(it) }
|
val varargElementType = parameterDescriptor.varargElementType?.let { typeTranslator.translateType(it) }
|
||||||
return irFactory.createValueParameter(
|
return irFactory.createValueParameter(
|
||||||
UNDEFINED_OFFSET, UNDEFINED_OFFSET, IrDeclarationOrigin.DEFINED, symbol, parameterDescriptor.name,
|
UNDEFINED_OFFSET, UNDEFINED_OFFSET, IrDeclarationOrigin.DEFINED, symbol, parameterDescriptor.name,
|
||||||
parameterDescriptor.indexOrMinusOne, type, varargElementType, parameterDescriptor.isCrossinline, parameterDescriptor.isNoinline
|
parameterDescriptor.indexOrMinusOne, type, varargElementType, parameterDescriptor.isCrossinline,
|
||||||
|
parameterDescriptor.isNoinline, isHidden = false, isAssignable = false
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -418,7 +418,8 @@ interface IrBuilderExtension {
|
|||||||
fun irValueParameter(descriptor: ParameterDescriptor): IrValueParameter = with(descriptor) {
|
fun irValueParameter(descriptor: ParameterDescriptor): IrValueParameter = with(descriptor) {
|
||||||
factory.createValueParameter(
|
factory.createValueParameter(
|
||||||
function.startOffset, function.endOffset, SERIALIZABLE_PLUGIN_ORIGIN, IrValueParameterSymbolImpl(this),
|
function.startOffset, function.endOffset, SERIALIZABLE_PLUGIN_ORIGIN, IrValueParameterSymbolImpl(this),
|
||||||
name, indexOrMinusOne, type.toIrType(), varargElementType?.toIrType(), isCrossinline, isNoinline, false
|
name, indexOrMinusOne, type.toIrType(), varargElementType?.toIrType(), isCrossinline, isNoinline,
|
||||||
|
isHidden = false, isAssignable = false
|
||||||
).also {
|
).also {
|
||||||
it.parent = function
|
it.parent = function
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user