Skip to main content

luaur_analysis/functions/
is_variadic_tail.rs

1use crate::records::generic_type_pack::GenericTypePack;
2use crate::records::txn_log::TxnLog;
3use crate::records::variadic_type_pack::VariadicTypePack;
4use crate::type_aliases::type_pack_id::TypePackId;
5
6pub fn is_variadic_tail(tp: TypePackId, log: &TxnLog, include_hidden_variadics: bool) -> bool {
7    if log.txn_log_is::<GenericTypePack, TypePackId>(tp) {
8        return true;
9    }
10
11    if let Some(vtp) = unsafe { log.txn_log_get::<VariadicTypePack, TypePackId>(tp).as_ref() } {
12        if include_hidden_variadics || !vtp.hidden {
13            return true;
14        }
15    }
16
17    false
18}