Negative coverage: is_not_downstream / via normalize / premise prove_normalize(decls, env, assumptions, parameter) => Constrained(p, c1)
Premise at line 262. Observed failure causes: failed_judgment.
via normalize| Line | Coverage | Source |
|---|---|---|
| 262 | 1 | (prove_normalize(decls, env, assumptions, parameter) => Constrained(p, c1)) |
| 263 | N/A | (let assumptions = c1.substitution().apply(assumptions)) |
| 264 | ✗ | (is_not_downstream(decls, c1.env(), assumptions, p) => c2) |
| ──────── ("via normalize") | ||
| 266 | 1 | (is_not_downstream(decls, env, assumptions, parameter) => c1.seq(c2)) |
1 test failed proving this premise:
Source location: tests/coherence_orphan.rs:109
#[test]
fn uncovered_T() {
FormalityTest::new(crates![crate core {
trait CoreTrait<T> {}
},
crate foo {
struct FooStruct {}
impl<T> CoreTrait<FooStruct> for T {}
}]).err(expect_test::expect![[r#"
crates/formality-rust/src/prove/prove/prove/prove_normalize.rs:19:1: no applicable rules for prove_normalize { p: !ty_0, assumptions: {}, env: Env { variables: [!ty_0], bias: Soundness, pending: [], allow_pending_outlives: false } }
crates/formality-rust/src/prove/prove/prove/prove_normalize.rs:19:1: no applicable rules for prove_normalize { p: !ty_0, assumptions: {}, env: Env { variables: [!ty_0], bias: Soundness, pending: [], allow_pending_outlives: false } }
the rule "local trait" at (is_local.rs) failed because
condition evaluated to false: `decls.is_local_trait_id(&goal.trait_id)`
decls = program([crate core { trait CoreTrait <ty, ty> { } }, crate foo { struct FooStruct { } impl <ty> CoreTrait <FooStruct> for ^ty0_0 { } }], 222)
&goal.trait_id = CoreTrait"#]])
}
Failed proof tree
check_all_crates failedmod.rs:41rule "check all prefixes"mod.rs:53check_crate failedmod.rs:60rule "check crate"mod.rs:74check_coherence failedcoherence.rs:8rule "check_coherence"coherence.rs:21orphan_check failedcoherence.rs:31rule "orphan_check"coherence.rs:38prove failedfunction.rs:250rulefunction.rs:250prove_wc_list failedprove_wc_list.rs:11rule "some"prove_wc_list.rs:29prove_wc failedprove_wc.rs:23rule "trait ref is local"prove_wc.rs:148is_local_trait_ref failedis_local.rs:201rule "local parameter"is_local.rs:224is_not_downstream failedis_local.rs:231rule "via normalize"is_local.rs:262prove_normalize failedprove_normalize.rs:19