Skip to main content

luaur_analysis/functions/
make_option.rs

1use 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}