| 769 | |
| 770 | #[test] |
| 771 | fn infer_open_cache_is_context_sensitive() { |
| 772 | let mut env = test_env(); |
| 773 | let mut tc = TypeChecker::new(&mut env); |
| 774 | let e = AE::var(0, ()); |
| 775 | |
| 776 | tc.push_local(sort0()); |
| 777 | let t1 = tc.infer(&e).unwrap(); |
| 778 | let cache_len = tc.env.infer_cache.len(); |
| 779 | tc.pop_local(); |
| 780 | |
| 781 | tc.push_local(sort1()); |
| 782 | let t2 = tc.infer(&e).unwrap(); |
| 783 | assert_ne!(t1, t2); |
| 784 | assert!(tc.env.infer_cache.len() > cache_len); |
| 785 | } |
| 786 | |
| 787 | // ========================================================================= |
| 788 | // Error paths |