From 3d2e6f6df2d3f563975b259d00bb046afff53be9 Mon Sep 17 00:00:00 2001 From: Kate Morley <34718897+KateMorley@users.noreply.github.com> Date: Sat, 21 Oct 2023 15:11:03 +0100 Subject: [PATCH] Improve error message for invalid long names --- argh/tests/ui/bad-long-names/bad-long-names.rs | 4 ++-- argh/tests/ui/bad-long-names/bad-long-names.stderr | 8 ++++---- argh_derive/src/parse_attrs.rs | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/argh/tests/ui/bad-long-names/bad-long-names.rs b/argh/tests/ui/bad-long-names/bad-long-names.rs index 61a9696..6aaf8cf 100644 --- a/argh/tests/ui/bad-long-names/bad-long-names.rs +++ b/argh/tests/ui/bad-long-names/bad-long-names.rs @@ -5,9 +5,9 @@ struct Cmd { /// non-ascii привет: bool, #[argh(switch)] - /// uppercase + /// invalid character XMLHTTPRequest: bool, - #[argh(switch, long = "not really")] + #[argh(switch, long = "invalid_character")] /// bad attr ok: bool, } diff --git a/argh/tests/ui/bad-long-names/bad-long-names.stderr b/argh/tests/ui/bad-long-names/bad-long-names.stderr index 3396a5a..3e1f053 100644 --- a/argh/tests/ui/bad-long-names/bad-long-names.stderr +++ b/argh/tests/ui/bad-long-names/bad-long-names.stderr @@ -4,14 +4,14 @@ error: Long names must be ASCII 6 | привет: bool, | ^^^^^^ -error: Long names must be lowercase +error: Long names may only contain lowercase letters, digits, and dashes --> tests/ui/bad-long-names/bad-long-names.rs:9:5 | 9 | XMLHTTPRequest: bool, | ^^^^^^^^^^^^^^ -error: Long names must be lowercase +error: Long names may only contain lowercase letters, digits, and dashes --> tests/ui/bad-long-names/bad-long-names.rs:10:27 | -10 | #[argh(switch, long = "not really")] - | ^^^^^^^^^^^^ +10 | #[argh(switch, long = "invalid_character")] + | ^^^^^^^^^^^^^^^^^^^ diff --git a/argh_derive/src/parse_attrs.rs b/argh_derive/src/parse_attrs.rs index 06febd5..a83ce5e 100644 --- a/argh_derive/src/parse_attrs.rs +++ b/argh_derive/src/parse_attrs.rs @@ -201,7 +201,7 @@ pub(crate) fn check_long_name(errors: &Errors, spanned: &impl syn::spanned::Span errors.err(spanned, "Long names must be ASCII"); } if !value.chars().all(|c| c.is_lowercase() || c == '-' || c.is_ascii_digit()) { - errors.err(spanned, "Long names must be lowercase"); + errors.err(spanned, "Long names may only contain lowercase letters, digits, and dashes"); } }