FIR2IR: remove redundant receiver generation from visitor

Now static functions have no dispatch receiver: they really shouldn't.
This commit is contained in:
Mikhail Glukhikh
2020-03-04 13:42:32 +03:00
parent 9788a7cfbc
commit fe658ce47f
16 changed files with 58 additions and 140 deletions
+12 -24
View File
@@ -12,11 +12,9 @@ FILE fqName:<root> fileName:/enum.kt
ENUM_ENTRY name:TEST2
init: EXPRESSION_BODY
ENUM_CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.TestEnum1'
FUN name:values visibility:public modality:FINAL <> ($this:<root>.TestEnum1) returnType:kotlin.Array<<root>.TestEnum1>
$this: VALUE_PARAMETER name:<this> type:<root>.TestEnum1
FUN name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<<root>.TestEnum1>
BLOCK_BODY
FUN name:valueOf visibility:public modality:FINAL <> ($this:<root>.TestEnum1, value:kotlin.String) returnType:<root>.TestEnum1
$this: VALUE_PARAMETER name:<this> type:<root>.TestEnum1
FUN name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:<root>.TestEnum1
VALUE_PARAMETER name:value index:0 type:kotlin.String
BLOCK_BODY
FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum<E of kotlin.Enum>) returnType:kotlin.Any [fake_override]
@@ -102,11 +100,9 @@ FILE fqName:<root> fileName:/enum.kt
ENUM_CONSTRUCTOR_CALL 'private constructor <init> (x: kotlin.Int) [primary] declared in <root>.TestEnum2'
x: CONST Int type=kotlin.Int value=3
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:TEST3 modality:FINAL visibility:private superTypes:[<root>.TestEnum2]'
FUN name:values visibility:public modality:FINAL <> ($this:<root>.TestEnum2) returnType:kotlin.Array<<root>.TestEnum2>
$this: VALUE_PARAMETER name:<this> type:<root>.TestEnum2
FUN name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<<root>.TestEnum2>
BLOCK_BODY
FUN name:valueOf visibility:public modality:FINAL <> ($this:<root>.TestEnum2, value:kotlin.String) returnType:<root>.TestEnum2
$this: VALUE_PARAMETER name:<this> type:<root>.TestEnum2
FUN name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:<root>.TestEnum2
VALUE_PARAMETER name:value index:0 type:kotlin.String
BLOCK_BODY
FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum<E of kotlin.Enum>) returnType:kotlin.Any [fake_override]
@@ -166,11 +162,9 @@ FILE fqName:<root> fileName:/enum.kt
message: CONST String type=kotlin.String value="Hello, world!"
FUN name:foo visibility:public modality:ABSTRACT <> ($this:<root>.TestEnum3) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.TestEnum3
FUN name:values visibility:public modality:FINAL <> ($this:<root>.TestEnum3) returnType:kotlin.Array<<root>.TestEnum3>
$this: VALUE_PARAMETER name:<this> type:<root>.TestEnum3
FUN name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<<root>.TestEnum3>
BLOCK_BODY
FUN name:valueOf visibility:public modality:FINAL <> ($this:<root>.TestEnum3, value:kotlin.String) returnType:<root>.TestEnum3
$this: VALUE_PARAMETER name:<this> type:<root>.TestEnum3
FUN name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:<root>.TestEnum3
VALUE_PARAMETER name:value index:0 type:kotlin.String
BLOCK_BODY
FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum<E of kotlin.Enum>) returnType:kotlin.Any [fake_override]
@@ -272,11 +266,9 @@ FILE fqName:<root> fileName:/enum.kt
message: GET_ENUM 'ENUM_ENTRY name:TEST2' type=<root>.TestEnum4
FUN name:foo visibility:public modality:ABSTRACT <> ($this:<root>.TestEnum4) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.TestEnum4
FUN name:values visibility:public modality:FINAL <> ($this:<root>.TestEnum4) returnType:kotlin.Array<<root>.TestEnum4>
$this: VALUE_PARAMETER name:<this> type:<root>.TestEnum4
FUN name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<<root>.TestEnum4>
BLOCK_BODY
FUN name:valueOf visibility:public modality:FINAL <> ($this:<root>.TestEnum4, value:kotlin.String) returnType:<root>.TestEnum4
$this: VALUE_PARAMETER name:<this> type:<root>.TestEnum4
FUN name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:<root>.TestEnum4
VALUE_PARAMETER name:value index:0 type:kotlin.String
BLOCK_BODY
FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum<E of kotlin.Enum>) returnType:kotlin.Any [fake_override]
@@ -362,11 +354,9 @@ FILE fqName:<root> fileName:/enum.kt
ENUM_CONSTRUCTOR_CALL 'private constructor <init> (x: kotlin.Int) [primary] declared in <root>.TestEnum5'
x: CONST Int type=kotlin.Int value=0
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:TEST3 modality:FINAL visibility:private superTypes:[<root>.TestEnum5]'
FUN name:values visibility:public modality:FINAL <> ($this:<root>.TestEnum5) returnType:kotlin.Array<<root>.TestEnum5>
$this: VALUE_PARAMETER name:<this> type:<root>.TestEnum5
FUN name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<<root>.TestEnum5>
BLOCK_BODY
FUN name:valueOf visibility:public modality:FINAL <> ($this:<root>.TestEnum5, value:kotlin.String) returnType:<root>.TestEnum5
$this: VALUE_PARAMETER name:<this> type:<root>.TestEnum5
FUN name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:<root>.TestEnum5
VALUE_PARAMETER name:value index:0 type:kotlin.String
BLOCK_BODY
FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum<E of kotlin.Enum>) returnType:kotlin.Any [fake_override]
@@ -449,11 +439,9 @@ FILE fqName:<root> fileName:/enum.kt
x: CALL 'public final fun f (): kotlin.Int declared in <root>' type=kotlin.Int origin=null
y: CALL 'public final fun f (): kotlin.Int declared in <root>' type=kotlin.Int origin=null
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:TEST modality:FINAL visibility:private superTypes:[<root>.TestEnum6]'
FUN name:values visibility:public modality:FINAL <> ($this:<root>.TestEnum6) returnType:kotlin.Array<<root>.TestEnum6>
$this: VALUE_PARAMETER name:<this> type:<root>.TestEnum6
FUN name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<<root>.TestEnum6>
BLOCK_BODY
FUN name:valueOf visibility:public modality:FINAL <> ($this:<root>.TestEnum6, value:kotlin.String) returnType:<root>.TestEnum6
$this: VALUE_PARAMETER name:<this> type:<root>.TestEnum6
FUN name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:<root>.TestEnum6
VALUE_PARAMETER name:value index:0 type:kotlin.String
BLOCK_BODY
FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum<E of kotlin.Enum>) returnType:kotlin.Any [fake_override]