luaur_analysis/functions/
make_option.rs1use crate::functions::make_union::make_union;
2use crate::records::builtin_types::BuiltinTypes;
3use crate::records::type_arena::TypeArena;
4use crate::type_aliases::type_id::TypeId;
5use core::ptr::NonNull;
6use luaur_common::macros::luau_assert::LUAU_ASSERT;
7
8pub fn make_option(
9 builtin_types: NonNull<BuiltinTypes>,
10 arena: &mut TypeArena,
11 t: TypeId,
12) -> TypeId {
13 LUAU_ASSERT!(!t.is_null());
14 let builtin_types = unsafe { builtin_types.as_ref() };
15 make_union(arena, vec![builtin_types.nilType, t])
16}