From 30b7684abd6970a613184824e579a8e331114b69 Mon Sep 17 00:00:00 2001 From: skomposzczet <72391558+skomposzczet@users.noreply.github.com> Date: Sat, 27 May 2023 14:00:29 +0200 Subject: [PATCH] add more helpful panic on empty names --- src/parser.rs | 3 +++ src/test_usage.rs | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/src/parser.rs b/src/parser.rs index 10edc14..1a07899 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -514,6 +514,9 @@ impl<'parser, 'refer, T> Ref<'parser, 'refer, T> { -> &'x mut Ref<'parser, 'refer, T> { { + if names.is_empty() { + panic!("At least one name for option must be specified"); + } let var = &mut self.parser.vars[self.varid]; if var.metavar.is_empty() { let mut longest_name = names[0]; diff --git a/src/test_usage.rs b/src/test_usage.rs index efe89fe..910a2fa 100644 --- a/src/test_usage.rs +++ b/src/test_usage.rs @@ -26,6 +26,15 @@ fn test_options() { from_utf8(&buf[..]).unwrap()); } +#[test] +#[should_panic(expected="At least one name for option must be specified")] +fn test_option_empty_names() { + let mut val = 0; + let mut ap = ArgumentParser::new(); + ap.refer(&mut val) + .add_option(&[], Store, "Set integer value"); +} + #[test] fn test_argument() { let mut val = 0;