compiler: declare symbols before store so that symbol graph works

This commit is contained in:
2023-11-29 15:03:22 -08:00
parent 3dbf8f9c4a
commit 962d079acc
4 changed files with 20 additions and 2 deletions

View File

@ -0,0 +1,10 @@
package gay.pizza.pork.bir
import kotlinx.serialization.Serializable
@Serializable
data class IrDeclare(override val symbol: IrSymbol, val value: IrCodeElement) : IrCodeElement, IrSymbolOwner {
override fun crawl(block: (IrElement) -> Unit) {
value.crawl(block)
}
}

View File

@ -29,6 +29,7 @@ interface IrVisitor<T> {
fun visitIrFunctionArgument(ir: IrFunctionArgument): T
fun visitIrIndex(ir: IrIndex): T
fun visitIrListSize(ir: IrListSize): T
fun visitIrDeclare(ir: IrDeclare): T
fun visit(ir: IrElement): T = when (ir) {
is IrBreak -> visitIrBeak(ir)
@ -59,5 +60,6 @@ interface IrVisitor<T> {
is IrFunctionArgument -> visitIrFunctionArgument(ir)
is IrIndex -> visitIrIndex(ir)
is IrListSize -> visitIrListSize(ir)
is IrDeclare -> visitIrDeclare(ir)
}
}