IR: Use name \$\$delegate_n for the field for interface delegation.

Without this change, these fields could have names such as
`<no name provided>$SuperClass$delegate` for something like
`object SuperClass by I { }`.
This commit is contained in:
Mads Ager
2020-01-16 15:30:13 +01:00
committed by Dmitry Petrov
parent a37ec5a062
commit e327b174a2
9 changed files with 52 additions and 55 deletions
@@ -53,7 +53,7 @@ FILE fqName:<root> fileName:/delegatedImplementationWithExplicitOverride.kt
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.IFooBar]'
FIELD DELEGATE name:C$IFooBar$delegate type:<root>.FooBarImpl visibility:private [final]
FIELD DELEGATE name:$$delegate_0 type:<root>.FooBarImpl visibility:private [final]
EXPRESSION_BODY
GET_OBJECT 'CLASS OBJECT name:FooBarImpl modality:FINAL visibility:public superTypes:[<root>.IFooBar]' type=<root>.FooBarImpl
FUN DELEGATED_MEMBER name:foo visibility:public modality:OPEN <> ($this:<root>.C) returnType:kotlin.Unit
@@ -62,7 +62,7 @@ FILE fqName:<root> fileName:/delegatedImplementationWithExplicitOverride.kt
$this: VALUE_PARAMETER name:<this> type:<root>.C
BLOCK_BODY
CALL 'public open fun foo (): kotlin.Unit declared in <root>.FooBarImpl' type=kotlin.Unit origin=null
$this: GET_FIELD 'FIELD DELEGATE name:C$IFooBar$delegate type:<root>.FooBarImpl visibility:private [final]' type=<root>.FooBarImpl origin=null
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.FooBarImpl visibility:private [final]' type=<root>.FooBarImpl origin=null
receiver: GET_VAR '<this>: <root>.C declared in <root>.C.foo' type=<root>.C origin=null
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.C) returnType:kotlin.Unit
overridden: