Skip to content

Commit dca7031

Browse files
compiler: Assert replaced solutions are equal if Some
1 parent 73db8d6 commit dca7031

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

compiler/rustc_type_ir/src/search_graph/global_cache.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,14 +53,21 @@ impl<X: Cx> GlobalCache<X> {
5353
) {
5454
let result = cx.mk_tracked(result, dep_node);
5555
let entry = self.map.entry(input).or_default();
56+
let result_tracked = cx.get_tracked(&result);
5657
if encountered_overflow {
5758
let with_overflow = WithOverflow { nested_goals, result };
5859
let prev = entry.with_overflow.insert(additional_depth, with_overflow);
60+
if let Some(prev) = &prev {
61+
assert_eq!(cx.get_tracked(&prev.result), result_tracked);
62+
}
5963
if !cx.evaluation_is_concurrent() {
6064
assert!(prev.is_none());
6165
};
6266
} else {
6367
let prev = entry.success.replace(Success { additional_depth, nested_goals, result });
68+
if let Some(prev) = &prev {
69+
assert_eq!(cx.get_tracked(&prev.result), result_tracked);
70+
}
6471
if !cx.evaluation_is_concurrent() {
6572
assert!(prev.is_none());
6673
}

0 commit comments

Comments
 (0)