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
|
||||
}
|
||||
|
||||
override fun visitDeclaration(declaration: IrDeclaration): IrStatement {
|
||||
override fun visitDeclaration(declaration: IrDeclarationBase): IrStatement {
|
||||
lateinit var tempGeneratedClasses: MutableList<IrClass>
|
||||
if (declaration is IrClass) {
|
||||
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
|
||||
super.visitDeclaration(declaration, data)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user