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:
+16
-17
@@ -1,5 +1,5 @@
|
||||
annotation class Ann : Annotation {
|
||||
constructor() /* primary */
|
||||
constructor() /* primary */
|
||||
|
||||
}
|
||||
|
||||
@@ -9,13 +9,13 @@ interface IFoo {
|
||||
abstract get
|
||||
|
||||
@Ann
|
||||
abstract fun testFun()
|
||||
abstract fun testFun()
|
||||
@Ann
|
||||
abstract val String.testExtVal: String
|
||||
abstract get
|
||||
|
||||
@Ann
|
||||
abstract fun String.testExtFun()
|
||||
abstract fun String.testExtFun()
|
||||
|
||||
}
|
||||
|
||||
@@ -27,25 +27,24 @@ class DFoo : IFoo {
|
||||
}
|
||||
|
||||
private /* final field */ val $$delegate_0: IFoo = d
|
||||
@Ann
|
||||
override fun String.testExtFun() {
|
||||
(<this>.#$$delegate_0, <this>).testExtFun()
|
||||
}
|
||||
|
||||
@Ann
|
||||
override fun testFun() {
|
||||
<this>.#$$delegate_0.testFun()
|
||||
}
|
||||
override val testVal: String
|
||||
override get(): String {
|
||||
return <this>.#$$delegate_0.<get-testVal>()
|
||||
}
|
||||
|
||||
override val String.testExtVal: String
|
||||
override get(): String {
|
||||
return (<this>.#$$delegate_0, <this>).<get-testExtVal>()
|
||||
}
|
||||
|
||||
override val testVal: String
|
||||
override get(): String {
|
||||
return <this>.#$$delegate_0.<get-testVal>()
|
||||
}
|
||||
@Ann
|
||||
override fun testFun() {
|
||||
<this>.#$$delegate_0.testFun()
|
||||
}
|
||||
|
||||
@Ann
|
||||
override fun String.testExtFun() {
|
||||
(<this>.#$$delegate_0, <this>).testExtFun()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user