Object references in object field initializers are 'GET_VAR this@Object'

This commit is contained in:
Dmitry Petrov
2018-07-23 11:01:08 +03:00
parent c3d20ae138
commit 65fe1101fd
7 changed files with 140 additions and 4 deletions
@@ -124,7 +124,7 @@ private fun StatementGenerator.shouldGenerateReceiverAsSingletonReference(receiv
val scopeOwner = this.scopeOwner
return receiverClassDescriptor.kind.isSingleton &&
scopeOwner != receiverClassDescriptor && // For anonymous initializers
!(scopeOwner is FunctionDescriptor && scopeOwner.containingDeclaration == receiverClassDescriptor) // Methods of object
!(scopeOwner is CallableMemberDescriptor && scopeOwner.containingDeclaration == receiverClassDescriptor) // Members of object
}
private fun StatementGenerator.generateThisOrSuperReceiver(receiver: ReceiverValue, classDescriptor: ClassDescriptor): IrExpression {