Commits
Click on a commit to change the comparison range[ty] improve #23109 TDD-based narrowing cache `narrow_by_constraint_inner` further `narrow_by_constraint_inner` optimization further `narrow_by_constraint_inner` optimization (take 2) Revert "further `narrow_by_constraint_inner` optimization (take 2)" Reapply "improve constant calculations with `resolve_to_literal`" Revert "`narrow_by_constraint` optimization (take 3)" add `PlaceVersion` to prevent the old shadowed narrowing constraint from being applied `narrow_by_constraint` optimization using `PlaceVersion` `narrow_by_constraint` optimization using `UnionType::from_elements_without_redundancy_check` optimization in `PredicatePlaceVersionInfo` remove `ReturnsNever` special casing remove `all_negative_narrowing_constraints_for_{expression, pattern}` compact `PredicatePlaceVersions` store place versions per definition in `UseDefMap` remove `latest_place_version` from `Bindings` fix `L/RShift` implemenation in `resolve_to_literal` Revert "remove `latest_place_version` from `Bindings`" Merge branch 'main' into improve-23109 simplify `narrow_by_constraint_inner` logic reduce redundancy checks in `narrow_by_constraint` reduce redundancy checks in `narrow_by_constraint` (2) memorize all return values in `narrow_by_constraint_inner` narrowing constraint id canonicalization [ty] Propagate narrowing through always-true if-conditions Update reachability_constraints.rs disable non-effective cache disable non-effective cache (take 2) Revert "disable non-effective cache (take 2)" cache two types intersection as a tracked function `NarrowingConstraint` has `Cunjunction`s add `GatedNarrowingConstraint` Merge branch 'main' into improve-23109 revert `add `GatedNarrowingConstraint`` cache two types union as a tracked function Revert "cache two types union as a tracked function" cache two types intersection as a tracked function (take 2) use `IntersectionType::from_two_elements` more add fast path for intersection type redundancy check avoid expensive intersection type checks add benchmark for large union type narrowing Merge branch 'main' into improve-23109 Revert "remove unnecessary code" add `MAX_NARROWING_GATING_MERGES` Revert "add `MAX_NARROWING_GATING_MERGES`" more aggressive short circuit in `Bindings::merge` optimize `narrow_by_constraint_inner` Merge branch 'main' into improve-23109 experiment: revert "optimize `narrow_by_constraint_inner`" Revert "experiment: revert "optimize `narrow_by_constraint_inner`"" tracked `evaluate_constraint_type` Revert "tracked `evaluate_constraint_type`"