Skip to content

Commit c7f3363

Browse files
committed
Add an extra rule for rigidty
1 parent c0fbd8b commit c7f3363

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

crates/formality-prove/src/prove/prove_wc.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,13 @@ judgment_fn! {
149149
(prove_wc(decls, env, assumptions, Predicate::ConstHasType(ct, ty)) => c)
150150
)
151151

152+
(
153+
(if ty.is_rigid())!
154+
(is_int(&decl, &env, assumptions, ty) => c)
155+
----------------------------- ("rigidty is int")
156+
(prove_wc(decl, env, assumptions, Relation::IsInt(ty)) => c)
157+
)
158+
152159
(
153160
(prove_normalize(&decl, &env, &assumptions, ty) => (c1, p))
154161
(let assumptions = c1.substitution().apply(&assumptions))

src/test/mir_fn_bodies.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -663,7 +663,7 @@ fn test_invalid_value_in_switch_terminator() {
663663
judgment `prove_wc_list { goal: {@ is_int(bool)}, assumptions: {}, env: Env { variables: [], bias: Soundness, pending: [] } }` failed at the following rule(s):
664664
the rule "some" failed at step #0 (src/file.rs:LL:CC) because
665665
judgment `prove_wc { goal: @ is_int(bool), assumptions: {}, env: Env { variables: [], bias: Soundness, pending: [] } }` failed at the following rule(s):
666-
the rule "ty is int" failed at step #0 (src/file.rs:LL:CC) because
666+
the rule "rigidty is int" failed at step #1 (src/file.rs:LL:CC) because
667667
judgment `is_int { goal: bool, assumptions: {}, env: Env { variables: [], bias: Soundness, pending: [] } }` failed at the following rule(s):
668668
the rule "is int" failed at step #0 (src/file.rs:LL:CC) because
669669
condition evaluted to false: `id.is_int()`

0 commit comments

Comments
 (0)