luaur_analysis/functions/
attach_require_magic.rs1use crate::functions::attach_magic_function::attach_magic_function;
2use crate::functions::attach_tag_type::attach_tag;
3use crate::methods::magic_require_handle_old_solver::magic_require_handle_old_solver;
4use crate::methods::magic_require_infer::magic_require_infer;
5use crate::records::magic_function::MagicFunction;
6use crate::records::magic_function_call_context::MagicFunctionCallContext;
7use crate::records::magic_function_type_check_context::MagicFunctionTypeCheckContext;
8use crate::records::magic_refinement_context::MagicRefinementContext;
9use crate::type_aliases::type_id::TypeId;
10use alloc::sync::Arc;
11
12fn noop_refine(_context: &MagicRefinementContext) {}
13
14fn noop_type_check(_context: &MagicFunctionTypeCheckContext) -> bool {
15 false
16}
17
18pub fn attach_require_magic(require_ty: TypeId) {
19 attach_tag(require_ty, "require");
20 attach_magic_function(
21 require_ty,
22 Arc::new(MagicFunction {
23 handle_old_solver: magic_require_handle_old_solver,
24 infer: magic_require_infer,
25 refine: noop_refine,
26 type_check: noop_type_check,
27 }),
28 );
29}