diff --git a/crates/oxc_semantic/src/symbol.rs b/crates/oxc_semantic/src/symbol.rs
index e7df650f52fbd..6daa716f24d81 100644
--- a/crates/oxc_semantic/src/symbol.rs
+++ b/crates/oxc_semantic/src/symbol.rs
@@ -194,6 +194,16 @@ impl SymbolTable {
             .map(|reference_id| &self.references[*reference_id])
     }
 
+    /// Delete a reference to a symbol.
+    ///
+    /// # Panics
+    /// Panics if provided `reference_id` is not a resolved reference for `symbol_id`.
+    pub fn delete_resolved_reference(&mut self, symbol_id: SymbolId, reference_id: ReferenceId) {
+        let reference_ids = &mut self.resolved_references[symbol_id];
+        let index = reference_ids.iter().position(|&id| id == reference_id).unwrap();
+        reference_ids.swap_remove(index);
+    }
+
     pub fn reserve(&mut self, additional_symbols: usize, additional_references: usize) {
         self.spans.reserve(additional_symbols);
         self.names.reserve(additional_symbols);