#[inline]
pub(crate) fn unexpected_action(action: &adze_glr_core::Action, where_: &str) {
debug_assert!(
matches!(
action,
adze_glr_core::Action::Shift(_)
| adze_glr_core::Action::Reduce(_)
| adze_glr_core::Action::Accept
| adze_glr_core::Action::Error
| adze_glr_core::Action::Recover
| adze_glr_core::Action::Fork(_)
),
"Unexpected action variant in {where_}: {action:?}"
);
}
#[cfg(test)]
mod tests {
use super::*;
use adze_glr_core::Action;
use adze_ir::{RuleId, StateId};
#[test]
fn unexpected_action_known_variant_no_panic() {
unexpected_action(&Action::Error, "util-test");
unexpected_action(&Action::Shift(StateId(0)), "util-test");
unexpected_action(&Action::Reduce(RuleId(0)), "util-test");
unexpected_action(&Action::Accept, "util-test");
}
}