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
+16 -16
View File
@@ -9,22 +9,6 @@ open class ControlFlowInfo<K : Any?, V : Any?> : Map<K, V> {
field = map
get
override fun containsKey(key: K): Boolean {
return <this>.#map.containsKey(key = key)
}
override fun containsValue(value: V): Boolean {
return <this>.#map.containsValue(value = value)
}
override operator fun get(key: K): V? {
return <this>.#map.get(key = key)
}
override fun isEmpty(): Boolean {
return <this>.#map.isEmpty()
}
override val entries: Set<Entry<K, V>>
override get(): Set<Entry<K, V>> {
return <this>.#map.<get-entries>()
@@ -45,6 +29,22 @@ open class ControlFlowInfo<K : Any?, V : Any?> : Map<K, V> {
return <this>.#map.<get-values>()
}
override fun containsKey(key: K): Boolean {
return <this>.#map.containsKey(key = key)
}
override fun containsValue(value: V): Boolean {
return <this>.#map.containsValue(value = value)
}
override operator fun get(key: K): V? {
return <this>.#map.get(key = key)
}
override fun isEmpty(): Boolean {
return <this>.#map.isEmpty()
}
}
class StringFlowInfo : ControlFlowInfo<String, String> {