Access to ir and external symbol table

This commit is contained in:
Leonid Startsev
2018-07-10 14:26:49 +03:00
parent 87da6e2226
commit 28319a76df
3 changed files with 9 additions and 1 deletions
@@ -18,10 +18,12 @@ package org.jetbrains.kotlin.backend.common
import org.jetbrains.kotlin.backend.common.descriptors.DescriptorsFactory import org.jetbrains.kotlin.backend.common.descriptors.DescriptorsFactory
import org.jetbrains.kotlin.backend.common.descriptors.SharedVariablesManager import org.jetbrains.kotlin.backend.common.descriptors.SharedVariablesManager
import org.jetbrains.kotlin.backend.common.ir.Ir
import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns
interface BackendContext { interface BackendContext {
val ir: Ir<CommonBackendContext>
val builtIns: KotlinBuiltIns val builtIns: KotlinBuiltIns
val irBuiltIns: IrBuiltIns val irBuiltIns: IrBuiltIns
val sharedVariablesManager: SharedVariablesManager val sharedVariablesManager: SharedVariablesManager
@@ -23,7 +23,7 @@ import kotlin.reflect.KProperty
interface CommonBackendContext : BackendContext { interface CommonBackendContext : BackendContext {
val ir: Ir<CommonBackendContext> override val ir: Ir<CommonBackendContext>
//TODO move to builtins //TODO move to builtins
fun getInternalClass(name: String): ClassDescriptor fun getInternalClass(name: String): ClassDescriptor
@@ -44,6 +44,12 @@ abstract class Symbols<out T : CommonBackendContext>(val context: T, private val
return initializer() return initializer()
} }
/**
* Use this table to reference external dependencies.
*/
open val externalSymbolTable: ReferenceSymbolTable
get() = symbolTable
// val refClass = calc { symbolTable.referenceClass(context.getInternalClass("Ref")) } // val refClass = calc { symbolTable.referenceClass(context.getInternalClass("Ref")) }
//abstract val areEqualByValue: List<IrFunctionSymbol> //abstract val areEqualByValue: List<IrFunctionSymbol>