From 4be6d19e5a8523159c71d45afdb8467388617f25 Mon Sep 17 00:00:00 2001 From: Douglas Creager Date: Mon, 15 Dec 2025 21:35:58 -0500 Subject: [PATCH] don't overwrite source_order --- crates/ty_python_semantic/src/types/constraints.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/crates/ty_python_semantic/src/types/constraints.rs b/crates/ty_python_semantic/src/types/constraints.rs index 77b96bd74b..fa60820296 100644 --- a/crates/ty_python_semantic/src/types/constraints.rs +++ b/crates/ty_python_semantic/src/types/constraints.rs @@ -72,6 +72,7 @@ use std::fmt::Display; use std::ops::Range; use itertools::Itertools; +use ordermap::map::Entry; use rustc_hash::{FxHashMap, FxHashSet}; use salsa::plumbing::AsId; @@ -3415,9 +3416,11 @@ impl<'db> PathAssignments<'db> { ); return Err(PathAssignmentConflict); } - if self.assignments.insert(assignment, source_order).is_some() { - return Ok(()); - } + + match self.assignments.entry(assignment) { + Entry::Vacant(entry) => entry.insert(source_order), + Entry::Occupied(_) => return Ok(()), + }; // Then use our sequents to add additional facts that we know to be true. We currently // reuse the `source_order` of the "real" constraint passed into `walk_edge` when we add