IR: introduce abstract class IrDeclarationBase
The main purpose of this class is to improve performance of IR visitors and transformers. `IrElementVisitor.visitDeclaration` now takes IrDeclarationBase as a parameter, and therefore the call to `accept` there is now a virtual class call, instead of an interface call. (cherry picked from commit e97d4717fb4c1fe2b6ad8005217150f0e2abe3a7)
This commit is contained in:
committed by
Vasily Levchenko
parent
2c1e9a9e2d
commit
cbb828d026
+1
-1
@@ -71,7 +71,7 @@ internal class CallableReferenceLowering(val context: Context): FileLoweringPass
|
|||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun visitDeclaration(declaration: IrDeclaration): IrStatement {
|
override fun visitDeclaration(declaration: IrDeclarationBase): IrStatement {
|
||||||
lateinit var tempGeneratedClasses: MutableList<IrClass>
|
lateinit var tempGeneratedClasses: MutableList<IrClass>
|
||||||
if (declaration is IrClass) {
|
if (declaration is IrClass) {
|
||||||
tempGeneratedClasses = generatedClasses
|
tempGeneratedClasses = generatedClasses
|
||||||
|
|||||||
+1
-1
@@ -136,7 +136,7 @@ object SetDeclarationsParentVisitor : IrElementVisitor<Unit, IrDeclarationParent
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun visitDeclaration(declaration: IrDeclaration, data: IrDeclarationParent) {
|
override fun visitDeclaration(declaration: IrDeclarationBase, data: IrDeclarationParent) {
|
||||||
declaration.parent = data
|
declaration.parent = data
|
||||||
super.visitDeclaration(declaration, data)
|
super.visitDeclaration(declaration, data)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user