Span trace utilities and runner source hint

This commit is contained in:
nyash-codex
2025-11-24 14:17:02 +09:00
parent 3154903121
commit 466e636af6
106 changed files with 4597 additions and 958 deletions

View File

@ -1,6 +1,5 @@
use super::{
BasicBlockId, EffectMask, FunctionSignature, MirFunction, MirInstruction, MirModule, MirType,
ValueId,
BasicBlockId, EffectMask, FunctionSignature, MirInstruction, MirModule, MirType, ValueId,
};
use crate::ast::ASTNode;
@ -63,7 +62,8 @@ impl super::MirBuilder {
}
}
pub(super) fn prepare_module(&mut self) -> Result<(), String> {
let module = MirModule::new("main".to_string());
let mut module = MirModule::new("main".to_string());
module.metadata.source_file = self.current_source_file();
let main_signature = FunctionSignature {
name: "main".to_string(),
params: vec![],
@ -72,7 +72,7 @@ impl super::MirBuilder {
};
let entry_block = self.block_gen.next();
let mut main_function = MirFunction::new(main_signature, entry_block);
let mut main_function = self.new_function_with_metadata(main_signature, entry_block);
main_function.metadata.is_entry_point = true;
self.current_module = Some(module);
@ -391,7 +391,7 @@ impl super::MirBuilder {
effects: EffectMask::PURE,
};
let entry = BasicBlockId::new(0);
let mut f = MirFunction::new(sig, entry);
let mut f = self.new_function_with_metadata(sig, entry);
// body: const 1; return itFunctionEmissionBox を使用)
let one = crate::mir::function_emission::emit_const_integer(&mut f, entry, 1);
crate::mir::function_emission::emit_return_value(&mut f, entry, one);