diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/StatementGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/StatementGenerator.kt index 808a3637716..4706d332648 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/StatementGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/StatementGenerator.kt @@ -222,7 +222,7 @@ class StatementGenerator( ) fun generateConstantExpression(expression: KtExpression, constant: CompileTimeConstant<*>): IrExpression = - ConstantValueGenerator(context.moduleDescriptor, context.symbolTable, null).generateConstantValueAsExpression( + ConstantValueGenerator(context.moduleDescriptor, context.symbolTable, null, null).generateConstantValueAsExpression( expression.startOffset, expression.endOffset, constant.toConstantValue(getInferredTypeWithImplicitCastsOrFail(expression)) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DumpIrTree.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DumpIrTree.kt index 480c545ca0f..d58e5e5d1f3 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DumpIrTree.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DumpIrTree.kt @@ -98,7 +98,7 @@ class DumpIrTreeVisitor(out: Appendable) : IrElementVisitor { override fun visitSimpleFunction(declaration: IrSimpleFunction, data: String) { declaration.dumpLabeledElementWith(data) { dumpAnnotations(declaration) - declaration.correspondingProperty?.render("correspondingProperty") + declaration.correspondingProperty?.dumpInternal("correspondingProperty") declaration.overriddenSymbols.dumpItems("overridden") { it.dumpDeclarationElementOrDescriptor() } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/IrUtils.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/IrUtils.kt index 08296a0ed17..eb39dcc873a 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/IrUtils.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/IrUtils.kt @@ -113,80 +113,80 @@ fun IrExpression.isNullConst() = this is IrConst<*> && this.kind == IrConstKind. fun IrMemberAccessExpression.usesDefaultArguments(): Boolean = this.descriptor.valueParameters.any { this.getValueArgument(it) == null } -fun IrFunction.createParameterDeclarations() { - fun ParameterDescriptor.irValueParameter() = IrValueParameterImpl( - innerStartOffset(this), innerEndOffset(this), - IrDeclarationOrigin.DEFINED, - this - ).also { - it.parent = this@createParameterDeclarations - } - - dispatchReceiverParameter = descriptor.dispatchReceiverParameter?.irValueParameter() - extensionReceiverParameter = descriptor.extensionReceiverParameter?.irValueParameter() - - assert(valueParameters.isEmpty()) - descriptor.valueParameters.mapTo(valueParameters) { it.irValueParameter() } - - assert(typeParameters.isEmpty()) - descriptor.typeParameters.mapTo(typeParameters) { - IrTypeParameterImpl( - innerStartOffset(it), innerEndOffset(it), - IrDeclarationOrigin.DEFINED, - it - ).also { typeParameter -> - typeParameter.parent = this - } - } -} - -fun IrClass.createParameterDeclarations() { - descriptor.thisAsReceiverParameter.let { - thisReceiver = IrValueParameterImpl( - innerStartOffset(it), innerEndOffset(it), - IrDeclarationOrigin.INSTANCE_RECEIVER, - it - ) - } - - assert(typeParameters.isEmpty()) - descriptor.declaredTypeParameters.mapTo(typeParameters) { - IrTypeParameterImpl( - innerStartOffset(it), innerEndOffset(it), - IrDeclarationOrigin.DEFINED, - it - ) - } -} - -fun IrClass.addFakeOverrides() { - - val startOffset = this.startOffset - val endOffset = this.endOffset - - fun FunctionDescriptor.createFunction(): IrSimpleFunction = IrFunctionImpl( - startOffset, endOffset, - IrDeclarationOrigin.FAKE_OVERRIDE, this - ).apply { - createParameterDeclarations() - } - - descriptor.unsubstitutedMemberScope.getContributedDescriptors() - .filterIsInstance() - .filter { it.kind == CallableMemberDescriptor.Kind.FAKE_OVERRIDE } - .mapTo(this.declarations) { - when (it) { - is FunctionDescriptor -> it.createFunction() - is PropertyDescriptor -> - IrPropertyImpl(startOffset, endOffset, IrDeclarationOrigin.FAKE_OVERRIDE, it).apply { - // TODO: add field if getter is missing? - getter = it.getter?.createFunction() - setter = it.setter?.createFunction() - } - else -> TODO(it.toString()) - } - } -} +//fun IrFunction.createParameterDeclarations() { +// fun ParameterDescriptor.irValueParameter() = IrValueParameterImpl( +// innerStartOffset(this), innerEndOffset(this), +// IrDeclarationOrigin.DEFINED, +// this +// ).also { +// it.parent = this@createParameterDeclarations +// } +// +// dispatchReceiverParameter = descriptor.dispatchReceiverParameter?.irValueParameter() +// extensionReceiverParameter = descriptor.extensionReceiverParameter?.irValueParameter() +// +// assert(valueParameters.isEmpty()) +// descriptor.valueParameters.mapTo(valueParameters) { it.irValueParameter() } +// +// assert(typeParameters.isEmpty()) +// descriptor.typeParameters.mapTo(typeParameters) { +// IrTypeParameterImpl( +// innerStartOffset(it), innerEndOffset(it), +// IrDeclarationOrigin.DEFINED, +// it +// ).also { typeParameter -> +// typeParameter.parent = this +// } +// } +//} +// +//fun IrClass.createParameterDeclarations() { +// descriptor.thisAsReceiverParameter.let { +// thisReceiver = IrValueParameterImpl( +// innerStartOffset(it), innerEndOffset(it), +// IrDeclarationOrigin.INSTANCE_RECEIVER, +// it +// ) +// } +// +// assert(typeParameters.isEmpty()) +// descriptor.declaredTypeParameters.mapTo(typeParameters) { +// IrTypeParameterImpl( +// innerStartOffset(it), innerEndOffset(it), +// IrDeclarationOrigin.DEFINED, +// it +// ) +// } +//} +// +//fun IrClass.addFakeOverrides() { +// +// val startOffset = this.startOffset +// val endOffset = this.endOffset +// +// fun FunctionDescriptor.createFunction(): IrSimpleFunction = IrFunctionImpl( +// startOffset, endOffset, +// IrDeclarationOrigin.FAKE_OVERRIDE, this +// ).apply { +// createParameterDeclarations() +// } +// +// descriptor.unsubstitutedMemberScope.getContributedDescriptors() +// .filterIsInstance() +// .filter { it.kind == CallableMemberDescriptor.Kind.FAKE_OVERRIDE } +// .mapTo(this.declarations) { +// when (it) { +// is FunctionDescriptor -> it.createFunction() +// is PropertyDescriptor -> +// IrPropertyImpl(startOffset, endOffset, IrDeclarationOrigin.FAKE_OVERRIDE, it).apply { +// // TODO: add field if getter is missing? +// getter = it.getter?.createFunction() +// setter = it.setter?.createFunction() +// } +// else -> TODO(it.toString()) +// } +// } +//} private fun IrElement.innerStartOffset(descriptor: DeclarationDescriptorWithSource): Int = descriptor.startOffset ?: this.startOffset