Create map FunctionDescriptor to FunctionDeclaration
This commit is contained in:
+14
@@ -1,7 +1,9 @@
|
||||
package org.jetbrains.kotlin.backend.konan.ir
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
||||
import org.jetbrains.kotlin.ir.IrElement
|
||||
import org.jetbrains.kotlin.ir.declarations.IrClass
|
||||
import org.jetbrains.kotlin.ir.declarations.IrFunction
|
||||
import org.jetbrains.kotlin.ir.declarations.IrModuleFragment
|
||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
|
||||
import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
|
||||
@@ -16,6 +18,11 @@ class ModuleIndex(val module: IrModuleFragment) {
|
||||
*/
|
||||
val classes: Map<ClassId, IrClass>
|
||||
|
||||
/**
|
||||
* Contains all functions declared in [module]
|
||||
*/
|
||||
val functions = mutableMapOf<FunctionDescriptor, IrFunction>()
|
||||
|
||||
init {
|
||||
val map = mutableMapOf<ClassId, IrClass>()
|
||||
|
||||
@@ -33,6 +40,13 @@ class ModuleIndex(val module: IrModuleFragment) {
|
||||
}
|
||||
}
|
||||
|
||||
override fun visitFunction(declaration: IrFunction) {
|
||||
super.visitFunction(declaration)
|
||||
|
||||
val functionDescriptor = declaration.descriptor
|
||||
functions[functionDescriptor] = declaration
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
classes = map
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@ import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
|
||||
import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
|
||||
import org.jetbrains.kotlin.ir.visitors.acceptVoid
|
||||
|
||||
class FunctionInlining(val context: Context) {
|
||||
internal class FunctionInlining(val context: Context) {
|
||||
fun inline(irFile: IrFile) {
|
||||
irFile.acceptVoid(object : IrElementVisitorVoid {
|
||||
override fun visitElement(element: IrElement) {
|
||||
|
||||
Reference in New Issue
Block a user