open-standards/wai/http-conformance/falsify/layer-any-alt.patch

15 lines
962 B
Diff

# must fail: fetch_O10L1_declared_other_alt
# a layer is declared after + in any alt, not only its base's (codecs::check_declared)
diff --git a/wai/wai-rs/src/http_binding/codecs.rs b/wai/wai-rs/src/http_binding/codecs.rs
index 568a3c5a..b3ea95e5 100644
--- a/wai/wai-rs/src/http_binding/codecs.rs
+++ b/wai/wai-rs/src/http_binding/codecs.rs
@@ -393,7 +393,7 @@ pub fn check_declared(head: &Head, union: &Element, base: Option<&SeqObject>) ->
.and_then(|r| super::unhex32(&r.base))
.ok_or_else(undeclared)?;
let base_cap = base.and_then(|b| base_capability(b, &refines)).ok_or_else(undeclared)?;
- return if union.alts.iter().any(|a| a.cap == base_cap && a.plus.contains(&cap)) { Ok(()) } else { Err(undeclared()) };
+ return if union.alts.iter().any(|a| { let _ = &base_cap; a.plus.contains(&cap) }) { Ok(()) } else { Err(undeclared()) };
}
let e = element_of(head)?;
if e.prefix > union.prefix {