[Clippy] Swap open_options
to use diagnostic items instead of paths
This commit is contained in:
parent
364e552940
commit
b2eebeeea9
@ -895,6 +895,7 @@
|
|||||||
field,
|
field,
|
||||||
field_init_shorthand,
|
field_init_shorthand,
|
||||||
file,
|
file,
|
||||||
|
file_options,
|
||||||
float,
|
float,
|
||||||
float_to_int_unchecked,
|
float_to_int_unchecked,
|
||||||
floorf128,
|
floorf128,
|
||||||
@ -1370,6 +1371,7 @@
|
|||||||
on,
|
on,
|
||||||
on_unimplemented,
|
on_unimplemented,
|
||||||
opaque,
|
opaque,
|
||||||
|
open_options_new,
|
||||||
ops,
|
ops,
|
||||||
opt_out_copy,
|
opt_out_copy,
|
||||||
optimize,
|
optimize,
|
||||||
|
@ -466,6 +466,7 @@ pub fn create_new<P: AsRef<Path>>(path: P) -> io::Result<File> {
|
|||||||
/// ```
|
/// ```
|
||||||
#[must_use]
|
#[must_use]
|
||||||
#[stable(feature = "with_options", since = "1.58.0")]
|
#[stable(feature = "with_options", since = "1.58.0")]
|
||||||
|
#[cfg_attr(not(test), rustc_diagnostic_item = "file_options")]
|
||||||
pub fn options() -> OpenOptions {
|
pub fn options() -> OpenOptions {
|
||||||
OpenOptions::new()
|
OpenOptions::new()
|
||||||
}
|
}
|
||||||
@ -1009,6 +1010,7 @@ impl OpenOptions {
|
|||||||
/// let mut options = OpenOptions::new();
|
/// let mut options = OpenOptions::new();
|
||||||
/// let file = options.read(true).open("foo.txt");
|
/// let file = options.read(true).open("foo.txt");
|
||||||
/// ```
|
/// ```
|
||||||
|
#[cfg_attr(not(test), rustc_diagnostic_item = "open_options_new")]
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
#[must_use]
|
#[must_use]
|
||||||
pub fn new() -> Self {
|
pub fn new() -> Self {
|
||||||
|
@ -126,17 +126,18 @@ fn get_open_options(
|
|||||||
&& let ExprKind::Path(path) = callee.kind
|
&& let ExprKind::Path(path) = callee.kind
|
||||||
&& let Some(did) = cx.qpath_res(&path, callee.hir_id).opt_def_id()
|
&& let Some(did) = cx.qpath_res(&path, callee.hir_id).opt_def_id()
|
||||||
{
|
{
|
||||||
match_any_def_paths(
|
let std_file_options = [
|
||||||
cx,
|
sym::file_options,
|
||||||
did,
|
sym::open_options_new,
|
||||||
&[
|
];
|
||||||
|
|
||||||
|
let tokio_file_options: &[&[&str]] = &[
|
||||||
&paths::TOKIO_IO_OPEN_OPTIONS_NEW,
|
&paths::TOKIO_IO_OPEN_OPTIONS_NEW,
|
||||||
&paths::OPEN_OPTIONS_NEW,
|
|
||||||
&paths::FILE_OPTIONS,
|
|
||||||
&paths::TOKIO_FILE_OPTIONS,
|
&paths::TOKIO_FILE_OPTIONS,
|
||||||
],
|
];
|
||||||
)
|
|
||||||
.is_some()
|
let is_std_options = std_file_options.into_iter().any(|sym| cx.tcx.is_diagnostic_item(sym, did));
|
||||||
|
is_std_options || match_any_def_paths(cx, did, tokio_file_options).is_some()
|
||||||
} else {
|
} else {
|
||||||
false
|
false
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,6 @@
|
|||||||
pub const DIAG: [&str; 2] = ["rustc_errors", "Diag"];
|
pub const DIAG: [&str; 2] = ["rustc_errors", "Diag"];
|
||||||
pub const EARLY_CONTEXT: [&str; 2] = ["rustc_lint", "EarlyContext"];
|
pub const EARLY_CONTEXT: [&str; 2] = ["rustc_lint", "EarlyContext"];
|
||||||
pub const EARLY_LINT_PASS: [&str; 3] = ["rustc_lint", "passes", "EarlyLintPass"];
|
pub const EARLY_LINT_PASS: [&str; 3] = ["rustc_lint", "passes", "EarlyLintPass"];
|
||||||
pub const FILE_OPTIONS: [&str; 4] = ["std", "fs", "File", "options"];
|
|
||||||
#[expect(clippy::invalid_paths)] // internal lints do not know about all external crates
|
#[expect(clippy::invalid_paths)] // internal lints do not know about all external crates
|
||||||
pub const FUTURES_IO_ASYNCREADEXT: [&str; 3] = ["futures_util", "io", "AsyncReadExt"];
|
pub const FUTURES_IO_ASYNCREADEXT: [&str; 3] = ["futures_util", "io", "AsyncReadExt"];
|
||||||
#[expect(clippy::invalid_paths)] // internal lints do not know about all external crates
|
#[expect(clippy::invalid_paths)] // internal lints do not know about all external crates
|
||||||
@ -27,7 +26,6 @@
|
|||||||
pub const LATE_LINT_PASS: [&str; 3] = ["rustc_lint", "passes", "LateLintPass"];
|
pub const LATE_LINT_PASS: [&str; 3] = ["rustc_lint", "passes", "LateLintPass"];
|
||||||
pub const LINT: [&str; 2] = ["rustc_lint_defs", "Lint"];
|
pub const LINT: [&str; 2] = ["rustc_lint_defs", "Lint"];
|
||||||
pub const MSRV: [&str; 3] = ["clippy_config", "msrvs", "Msrv"];
|
pub const MSRV: [&str; 3] = ["clippy_config", "msrvs", "Msrv"];
|
||||||
pub const OPEN_OPTIONS_NEW: [&str; 4] = ["std", "fs", "OpenOptions", "new"];
|
|
||||||
pub const PARKING_LOT_MUTEX_GUARD: [&str; 3] = ["lock_api", "mutex", "MutexGuard"];
|
pub const PARKING_LOT_MUTEX_GUARD: [&str; 3] = ["lock_api", "mutex", "MutexGuard"];
|
||||||
pub const PARKING_LOT_RWLOCK_READ_GUARD: [&str; 3] = ["lock_api", "rwlock", "RwLockReadGuard"];
|
pub const PARKING_LOT_RWLOCK_READ_GUARD: [&str; 3] = ["lock_api", "rwlock", "RwLockReadGuard"];
|
||||||
pub const PARKING_LOT_RWLOCK_WRITE_GUARD: [&str; 3] = ["lock_api", "rwlock", "RwLockWriteGuard"];
|
pub const PARKING_LOT_RWLOCK_WRITE_GUARD: [&str; 3] = ["lock_api", "rwlock", "RwLockWriteGuard"];
|
||||||
|
Loading…
Reference in New Issue
Block a user