From ccf7aeb98d6dcc67ce2190b7343bb4543165aeb0 Mon Sep 17 00:00:00 2001 From: John Turner Date: Fri, 24 Oct 2025 21:40:14 -0400 Subject: [PATCH] disallow upper case letters in versions --- src/atom/parsers.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/atom/parsers.rs b/src/atom/parsers.rs index f4686f2..e1954c0 100644 --- a/src/atom/parsers.rs +++ b/src/atom/parsers.rs @@ -51,7 +51,9 @@ pub fn version<'a>() -> impl Parser<&'a str, Output = Version> { let rev = version_number().preceded_by(tag("-r")); numbers - .and(opt(r#if(|c: &char| c.is_ascii_alphabetic()))) + .and(opt(r#if(|c: &char| { + c.is_ascii_alphabetic() && c.is_ascii_lowercase() + }))) .and(opt(suffixes.preceded_by(tag("_")))) .and(opt(rev)) .map(|(((numbers, letter), suffixes), rev)| Version { @@ -287,4 +289,11 @@ mod test { atom().check_finished(it).unwrap(); } + + #[test] + fn test_version_with_uppercase_letter() { + let it = InputIter::new("foo/bar-1.0.0V"); + + assert!(atom().check_finished(it).is_err()); + } }