From ef77cf8d3a9378076f587ac2121daa61c2e7c50f Mon Sep 17 00:00:00 2001 From: iksuddle Date: Tue, 30 Dec 2025 16:23:48 -0500 Subject: [PATCH] fix false conflict --- src/tree.rs | 2 +- tests/insert.rs | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/tree.rs b/src/tree.rs index b7dd6d4..4d4695b 100644 --- a/src/tree.rs +++ b/src/tree.rs @@ -319,7 +319,7 @@ impl Node { // Similarly, we are inserting a parameter suffix and this node already has a parameter // prefix, we have a prefix-suffix conflict. - let suffix = remaining.slice_off(wildcard.end); + let suffix = remaining.slice_until(terminator).slice_off(wildcard.end); if !matches!(*suffix, b"" | b"/") && node.prefix_wild_child_in_segment() { return Err(InsertError::conflict(&route, remaining, node)); } diff --git a/tests/insert.rs b/tests/insert.rs index 47fc3a2..44864d4 100644 --- a/tests/insert.rs +++ b/tests/insert.rs @@ -255,6 +255,8 @@ fn prefix_suffix_conflict() { ("/x15/prefix{a}", Ok(())), ("/x16/{*rest}", Ok(())), ("/x16/prefix{a}suffix", Ok(())), + ("/x17/prefix{a}/z", Ok(())), + ("/x18/prefix{a}/z", Ok(())), ]) .run() }