1
Fork 0

Remove LateContext::match_def_path()

This function was only kept for Clippy use. The last use in Clippy was
removed in c9315bc395.
This commit is contained in:
Samuel Tardieu 2025-01-10 23:53:14 +01:00
parent 61cc3e51f8
commit 0bb3d5209e

View file

@ -4,7 +4,7 @@
//! overview of how lints are implemented.
use std::cell::Cell;
use std::{iter, slice};
use std::slice;
use rustc_data_structures::fx::FxIndexMap;
use rustc_data_structures::sync;
@ -718,30 +718,6 @@ impl<'tcx> LateContext<'tcx> {
}
}
/// Check if a `DefId`'s path matches the given absolute type path usage.
///
/// Anonymous scopes such as `extern` imports are matched with `kw::Empty`;
/// inherent `impl` blocks are matched with the name of the type.
///
/// Instead of using this method, it is often preferable to instead use
/// `rustc_diagnostic_item` or a `lang_item`. This is less prone to errors
/// as paths get invalidated if the target definition moves.
///
/// # Examples
///
/// ```rust,ignore (no context or def id available)
/// if cx.match_def_path(def_id, &[sym::core, sym::option, sym::Option]) {
/// // The given `def_id` is that of an `Option` type
/// }
/// ```
///
/// Used by clippy, but should be replaced by diagnostic items eventually.
pub fn match_def_path(&self, def_id: DefId, path: &[Symbol]) -> bool {
let names = self.get_def_path(def_id);
names.len() == path.len() && iter::zip(names, path).all(|(a, &b)| a == b)
}
/// Gets the absolute path of `def_id` as a vector of `Symbol`.
///
/// # Examples