| 1013 | |
| 1014 | let resolve = move |id: &KId<Anon>| -> Option<KConst<Anon>> { |
| 1015 | if id.addr == mk_addr("ctor1") { |
| 1016 | Some(ctor1.clone()) |
| 1017 | } else if id.addr == mk_addr("ctor2") { |
| 1018 | Some(ctor2.clone()) |
| 1019 | } else { |
| 1020 | None |
| 1021 | } |
| 1022 | }; |
| 1023 | let ctx = KMutCtx::default(); |
| 1024 | let so = compare_kconst(&ind_a, &ind_b, &ctx, &resolve).unwrap(); |
| 1025 | assert_eq!(so.ordering, Ordering::Equal); |
| 1026 | } |
| 1027 | |
| 1028 | #[test] |
| 1029 | fn compare_kindc_orders_by_params() { |
| 1030 | let resolve = move |_: &KId<Anon>| -> Option<KConst<Anon>> { None }; |
| 1031 | let ctx = KMutCtx::default(); |
| 1032 | let (_, a) = mk_indc("A", 1, 0, vec![], sort0()); // 1 param |
| 1033 | let (_, b) = mk_indc("B", 2, 0, vec![], sort0()); // 2 params |
| 1034 | assert_eq!( |
| 1035 | compare_kconst(&a, &b, &ctx, &resolve).unwrap().ordering, |
| 1036 | Ordering::Less |
| 1037 | ); |
| 1038 | } |
| 1039 | |