core: Add GenCall::create_dummy

A simple abstraction for GenCalls that are already handled elsewhere.
This commit is contained in:
David Mak 2024-04-23 14:36:29 +08:00
parent 7b4253ccd8
commit eecba0b71d
2 changed files with 10 additions and 5 deletions

View File

@ -514,11 +514,9 @@ pub fn get_builtins(unifier: &mut Unifier, primitives: &PrimitiveStore) -> Built
instance_to_symbol: HashMap::default(), instance_to_symbol: HashMap::default(),
instance_to_stmt: HashMap::default(), instance_to_stmt: HashMap::default(),
resolver: None, resolver: None,
codegen_callback: Some(Arc::new(GenCall::new(Box::new( codegen_callback: Some(Arc::new(GenCall::create_dummy(
|_, _, _, _, _| { String::from("handled in gen_expr"),
unreachable!("handled in gen_expr") ))),
},
)))),
loc: None, loc: None,
})), })),
Arc::new(RwLock::new(TopLevelDef::Class { Arc::new(RwLock::new(TopLevelDef::Class {

View File

@ -53,6 +53,13 @@ impl GenCall {
GenCall { fp } GenCall { fp }
} }
/// Creates a dummy instance of [`GenCall`], which invokes [`unreachable!()`] with the given
/// `reason`.
#[must_use]
pub fn create_dummy(reason: String) -> GenCall {
Self::new(Box::new(move |_, _, _, _, _| unreachable!("{reason}")))
}
pub fn run<'ctx>( pub fn run<'ctx>(
&self, &self,
ctx: &mut CodeGenContext<'ctx, '_>, ctx: &mut CodeGenContext<'ctx, '_>,