| 832 | |
| 833 | #[test] |
| 834 | fn infer_binder_errors_restore_lctx_scope() { |
| 835 | let bad_body = AE::cnst(mk_id("MissingBinderBody"), Box::new([])); |
| 836 | let cases = [ |
| 837 | ("lambda", AE::lam((), (), sort0(), bad_body.clone())), |
| 838 | ("forall", AE::all((), (), sort0(), bad_body.clone())), |
| 839 | ("let", AE::let_((), sort1(), sort0(), bad_body, false)), |
| 840 | ]; |
| 841 | |
| 842 | for (kind, expr) in cases { |
| 843 | let mut env = test_env(); |
| 844 | let mut tc = TypeChecker::new(&mut env); |
| 845 | let outer_id = tc.fresh_fvar_id(); |
| 846 | tc.lctx |
| 847 | .push(outer_id, LocalDecl::CDecl { name: (), bi: (), ty: sort0() }); |
| 848 | let saved = tc.lctx.len(); |
| 849 | |