Psi2ir: do not sort descriptors for fake override generation

Descriptors are already supposed to be sorted in scopes. The problem is
that rendering descriptors for sorting takes a lot of time (~1.5% of
total compilation time of intellij with JVM IR), and simple heuristics,
like comparing by names first, don't fully help with it.

 #KT-48233
This commit is contained in:
Alexander Udalov
2021-08-26 00:11:00 +02:00
parent cc52832943
commit ffe0d9de70
59 changed files with 2205 additions and 2242 deletions
+10 -10
View File
@@ -57,26 +57,26 @@
@17:0..18:11 BLOCK_BODY
@17:0..18:11 ENUM_CONSTRUCTOR_CALL 'public constructor <init> (name: kotlin.String, ordinal: kotlin.Int) [primary] declared in kotlin.Enum'
@17:0..18:11 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:Test5 modality:FINAL visibility:public superTypes:[kotlin.Enum<<root>.Test5>]'
@17:0..18:11 PROPERTY FAKE_OVERRIDE name:name visibility:public modality:FINAL [fake_override,val]
@18:0..11 FUN FAKE_OVERRIDE name:<get-name> visibility:public modality:FINAL <> ($this:kotlin.Enum<<root>.Test5>) returnType:kotlin.String [fake_override]
@17:0..18:11 VALUE_PARAMETER name:<this> type:kotlin.Enum<<root>.Test5>
@17:0..18:11 PROPERTY FAKE_OVERRIDE name:ordinal visibility:public modality:FINAL [fake_override,val]
@18:0..11 FUN FAKE_OVERRIDE name:<get-ordinal> visibility:public modality:FINAL <> ($this:kotlin.Enum<<root>.Test5>) returnType:kotlin.Int [fake_override]
@17:0..18:11 VALUE_PARAMETER name:<this> type:kotlin.Enum<<root>.Test5>
@18:0..11 FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum<<root>.Test5>) returnType:kotlin.Any [fake_override]
@17:0..18:11 VALUE_PARAMETER name:<this> type:kotlin.Enum<<root>.Test5>
@18:0..11 FUN FAKE_OVERRIDE name:finalize visibility:protected/*protected and package*/ modality:FINAL <> ($this:kotlin.Enum<<root>.Test5>) returnType:kotlin.Unit [fake_override]
@17:0..18:11 VALUE_PARAMETER name:<this> type:kotlin.Enum<<root>.Test5>
@18:0..11 FUN FAKE_OVERRIDE name:getDeclaringClass visibility:public modality:FINAL <> ($this:kotlin.Enum<<root>.Test5>) returnType:@[FlexibleNullability] java.lang.Class<@[FlexibleNullability] <root>.Test5?>? [fake_override]
@17:0..18:11 VALUE_PARAMETER name:<this> type:kotlin.Enum<<root>.Test5>
@18:0..11 FUN FAKE_OVERRIDE name:compareTo visibility:public modality:FINAL <> ($this:kotlin.Enum<<root>.Test5>, other:<root>.Test5) returnType:kotlin.Int [fake_override,operator]
@17:0..18:11 VALUE_PARAMETER name:<this> type:kotlin.Enum<<root>.Test5>
@18:0..11 VALUE_PARAMETER name:other index:0 type:<root>.Test5
@18:0..11 FUN FAKE_OVERRIDE name:equals visibility:public modality:FINAL <> ($this:kotlin.Enum<<root>.Test5>, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
@17:0..18:11 VALUE_PARAMETER name:<this> type:kotlin.Enum<<root>.Test5>
@18:0..11 VALUE_PARAMETER name:other index:0 type:kotlin.Any?
@18:0..11 FUN FAKE_OVERRIDE name:finalize visibility:protected/*protected and package*/ modality:FINAL <> ($this:kotlin.Enum<<root>.Test5>) returnType:kotlin.Unit [fake_override]
@17:0..18:11 VALUE_PARAMETER name:<this> type:kotlin.Enum<<root>.Test5>
@18:0..11 FUN FAKE_OVERRIDE name:getDeclaringClass visibility:public modality:FINAL <> ($this:kotlin.Enum<<root>.Test5>) returnType:@[FlexibleNullability] java.lang.Class<@[FlexibleNullability] <root>.Test5?>? [fake_override]
@17:0..18:11 VALUE_PARAMETER name:<this> type:kotlin.Enum<<root>.Test5>
@18:0..11 FUN FAKE_OVERRIDE name:hashCode visibility:public modality:FINAL <> ($this:kotlin.Enum<<root>.Test5>) returnType:kotlin.Int [fake_override]
@17:0..18:11 VALUE_PARAMETER name:<this> type:kotlin.Enum<<root>.Test5>
@17:0..18:11 PROPERTY FAKE_OVERRIDE name:name visibility:public modality:FINAL [fake_override,val]
@18:0..11 FUN FAKE_OVERRIDE name:<get-name> visibility:public modality:FINAL <> ($this:kotlin.Enum<<root>.Test5>) returnType:kotlin.String [fake_override]
@17:0..18:11 VALUE_PARAMETER name:<this> type:kotlin.Enum<<root>.Test5>
@17:0..18:11 PROPERTY FAKE_OVERRIDE name:ordinal visibility:public modality:FINAL [fake_override,val]
@18:0..11 FUN FAKE_OVERRIDE name:<get-ordinal> visibility:public modality:FINAL <> ($this:kotlin.Enum<<root>.Test5>) returnType:kotlin.Int [fake_override]
@17:0..18:11 VALUE_PARAMETER name:<this> type:kotlin.Enum<<root>.Test5>
@18:0..11 FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Enum<<root>.Test5>) returnType:kotlin.String [fake_override]
@17:0..18:11 VALUE_PARAMETER name:<this> type:kotlin.Enum<<root>.Test5>
@-1:-1..-1 FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<<root>.Test5>