Audit Symbols

This commit is contained in:
Cameron Steffen
2026-02-14 11:06:57 -06:00
parent 7f99507f57
commit 0f9b166a6f
92 changed files with 372 additions and 478 deletions
-316
View File
@@ -158,12 +158,9 @@
AcqRel,
Acquire,
Alignment,
Any,
Arc,
ArcWeak,
Argument,
Array,
ArrayIntoIter,
AsMut,
AsRef,
AssertParamIsClone,
@@ -186,11 +183,7 @@
AtomicU64,
AtomicU128,
AtomicUsize,
AutoTrait,
BTreeEntry,
BTreeMap,
BTreeSet,
BinaryHeap,
Bool,
Borrow,
BorrowMut,
@@ -198,20 +191,16 @@
BuildHasher,
C,
CStr,
C_dash_unwind: "C-unwind",
CallOnceFuture,
CallRefFuture,
Capture,
Cell,
Center,
Char,
Child,
Cleanup,
Clone,
CoercePointee,
CoercePointeeValidated,
CoerceUnsized,
Command,
Const,
ConstParamTy,
ConstParamTy_,
@@ -219,36 +208,20 @@
Continue,
ControlFlow,
Copy,
Cow,
Debug,
DebugStruct,
Decodable,
Decoder,
Default,
Deref,
DiagMessage,
Diagnostic,
DirBuilder,
DispatchFromDyn,
Display,
DoubleEndedIterator,
Duration,
DynTrait,
Encodable,
Encoder,
Enum,
Enumerate,
Eq,
Equal,
Err,
Error,
ExternC,
ExternRust,
File,
FileType,
Float,
FmtArgumentsNew,
FmtWrite,
Fn,
FnMut,
FnOnce,
@@ -258,54 +231,31 @@
From,
FromIterator,
FromResidual,
FsOpenOptions,
FsPermissions,
FusedIterator,
Future,
GlobalAlloc,
Hash,
HashMap,
HashMapEntry,
HashSet,
Hasher,
Implied,
InCleanup,
IndexOutput,
Input,
Instant,
Int,
Into,
IntoFuture,
IntoIterator,
IntoIteratorItem,
IoBufRead,
IoLines,
IoRead,
IoSeek,
IoWrite,
IpAddr,
Ipv4Addr,
Ipv6Addr,
IrTyKind,
Is,
Item,
ItemContext,
IterEmpty,
IterOnce,
IterPeekable,
Iterator,
IteratorItem,
IteratorMap,
Layout,
Left,
Lifetime,
LinkedList,
LintDiagnostic,
LintPass,
LocalKey,
Mutex,
MutexGuard,
N,
Named,
NonNull,
NonZero,
@@ -315,24 +265,17 @@
Option,
Ord,
Ordering,
OsStr,
OsString,
Other,
Output,
Param,
ParamSet,
PartialEq,
PartialOrd,
Path,
PathBuf,
Pending,
PinCoerceUnsized,
PinDerefMutHelper,
Pointer,
Poll,
ProcMacro,
Range,
RangeBounds,
RangeCopy,
RangeFrom,
RangeFromCopy,
@@ -348,48 +291,35 @@
Rc,
RcWeak,
Ready,
Receiver,
RefCell,
RefCellRef,
RefCellRefMut,
Reference,
Relaxed,
Release,
Result,
ResumeTy,
Return,
Reverse,
Right,
Rust,
RustaceansAreAwesome,
RwLock,
RwLockReadGuard,
RwLockWriteGuard,
Saturating,
SeekFrom,
SelfTy,
Send,
SeqCst,
Sized,
Slice,
SliceIndex,
SliceIter,
Some,
SpanCtxt,
Stdin,
Str,
String,
Struct,
StructuralPartialEq,
Subdiagnostic,
SymbolIntern,
Sync,
SyncUnsafeCell,
T,
Target,
This,
ToOwned,
ToString,
TokenStream,
Trait,
TrivialClone,
@@ -404,21 +334,12 @@
TyKind,
Type,
Union,
Unknown,
Unsize,
UnsizedConstParamTy,
Upvars,
Vec,
VecDeque,
Waker,
Wrapper,
Wrapping,
Yield,
_DECLS,
__D,
__H,
__S,
__T,
__awaitee,
__try_var,
_t,
@@ -480,7 +401,6 @@
and,
and_then,
anon,
anon_adt,
anon_assoc,
anonymous_lifetime_in_impl_trait,
any,
@@ -499,9 +419,7 @@
arm_target_feature,
array,
as_dash_needed: "as-needed",
as_ptr,
as_ref,
as_str,
asm,
asm_cfg,
asm_const,
@@ -551,7 +469,6 @@
async_iterator,
async_iterator_poll_next,
async_trait_bounds,
atomic,
atomic_and,
atomic_cxchg,
atomic_cxchgweak,
@@ -600,7 +517,6 @@
bikeshed,
bikeshed_guaranteed_no_drop,
bin,
binaryheap_iter,
bind_by_move_pattern_guards,
bindings_after_at,
bitand,
@@ -615,7 +531,6 @@
block,
blocking,
bool,
bool_then,
borrowck_graphviz_format,
borrowck_graphviz_postflow,
box_new,
@@ -629,15 +544,11 @@
breakpoint,
bridge,
bswap,
btreemap_contains_key,
btreemap_insert,
btreeset_iter,
built,
builtin_syntax,
bundle,
c,
c_dash_variadic,
c_str,
c_str_literals,
c_unwind,
c_variadic,
@@ -670,7 +581,6 @@
cfg_doctest,
cfg_emscripten_wasm_eh,
cfg_eval,
cfg_fmt_debug,
cfg_overflow_checks,
cfg_panic,
cfg_relocation_model,
@@ -691,10 +601,6 @@
cfi,
cfi_encoding,
char,
char_is_ascii,
char_to_digit,
child_id,
child_kill,
client,
clippy,
clobber_abi,
@@ -707,8 +613,6 @@
closure_to_fn_coercion,
closure_track_caller,
cmp,
cmp_max,
cmp_min,
cmp_ord_max,
cmp_ord_min,
cmp_partialeq_eq,
@@ -799,7 +703,6 @@
contracts_internals,
contracts_requires,
convert,
convert_identity,
copy,
copy_closures,
copy_nonoverlapping,
@@ -810,7 +713,6 @@
core,
core_panic,
core_panic_2015_macro,
core_panic_2021_macro,
core_panic_macro,
coroutine,
coroutine_clone,
@@ -836,7 +738,6 @@
csky,
csky_target_feature,
cstr_type,
cstring_as_c_str,
cstring_type,
ctlz,
ctlz_nonzero,
@@ -852,7 +753,6 @@
custom_test_frameworks,
d,
d32,
dbg_macro,
dead_code,
dealloc,
debug,
@@ -860,14 +760,11 @@
debug_assert_macro,
debug_assert_ne_macro,
debug_assertions,
debug_struct,
debug_struct_fields_finish,
debug_tuple,
debug_tuple_fields_finish,
debugger_visualizer,
decl_macro,
declare_lint_pass,
decode,
decorated,
default_alloc_error_handler,
default_field_values,
@@ -886,7 +783,6 @@
default_type_parameter_fallback,
default_type_params,
define_opaque,
delayed_bug_from_inside_query,
deny,
deprecated,
deprecated_safe,
@@ -894,12 +790,10 @@
deref,
deref_method,
deref_mut,
deref_mut_method,
deref_patterns,
deref_pure,
deref_target,
derive,
derive_coerce_pointee,
derive_const,
derive_const_issue: "118304",
derive_default_enum,
@@ -933,7 +827,6 @@
doc_primitive,
doc_spotlight,
doctest,
dotdot: "..",
dotdot_in_tuple_patterns,
dotdoteq_in_patterns,
dreg,
@@ -960,16 +853,9 @@
eh_personality,
eii,
eii_declaration,
eii_impl,
eii_internals,
eii_shared_macro,
element_ty,
emit,
emit_enum,
emit_enum_variant,
emit_enum_variant_arg,
emit_struct,
emit_struct_field,
// Notes about `sym::empty`:
// - It should only be used when it genuinely means "empty symbol". Use
// `Option<Symbol>` when "no symbol" is a possibility.
@@ -980,14 +866,10 @@
empty: "",
emscripten_wasm_eh,
enable,
encode,
end,
entry_nops,
enumerate_method,
env,
env_CFG_RELEASE: env!("CFG_RELEASE"),
eprint_macro,
eprintln_macro,
eq,
ergonomic_clones,
ermsb_target_feature,
@@ -1032,49 +914,13 @@
external_doc,
f,
f16,
f16_consts_mod,
f16_epsilon,
f16_nan,
f16c_target_feature,
f32,
f32_consts_mod,
f32_epsilon,
f32_legacy_const_digits,
f32_legacy_const_epsilon,
f32_legacy_const_infinity,
f32_legacy_const_mantissa_dig,
f32_legacy_const_max,
f32_legacy_const_max_10_exp,
f32_legacy_const_max_exp,
f32_legacy_const_min,
f32_legacy_const_min_10_exp,
f32_legacy_const_min_exp,
f32_legacy_const_min_positive,
f32_legacy_const_nan,
f32_legacy_const_neg_infinity,
f32_legacy_const_radix,
f32_nan,
f64,
f64_consts_mod,
f64_epsilon,
f64_legacy_const_digits,
f64_legacy_const_epsilon,
f64_legacy_const_infinity,
f64_legacy_const_mantissa_dig,
f64_legacy_const_max,
f64_legacy_const_max_10_exp,
f64_legacy_const_max_exp,
f64_legacy_const_min,
f64_legacy_const_min_10_exp,
f64_legacy_const_min_exp,
f64_legacy_const_min_positive,
f64_legacy_const_nan,
f64_legacy_const_neg_infinity,
f64_legacy_const_radix,
f64_nan,
f128,
f128_consts_mod,
f128_epsilon,
f128_nan,
fabsf16,
fabsf32,
@@ -1090,18 +936,13 @@
fence,
ferris: "🦀",
fetch_update,
ffi,
ffi_const,
ffi_pure,
ffi_returns_twice,
field,
field_init_shorthand,
fields,
file,
file_options,
final_associated_functions,
flags,
float,
float_to_int_unchecked,
floorf16,
floorf32,
@@ -1131,10 +972,8 @@
forbid,
force_target_feature,
forget,
format,
format_args,
format_args_capture,
format_args_macro,
format_args_nl,
format_argument,
format_arguments,
@@ -1147,28 +986,21 @@
frem_fast,
from,
from_desugaring,
from_fn,
from_iter,
from_iter_fn,
from_output,
from_residual,
from_size_align_unchecked,
from_size_alignment_unchecked,
from_str,
from_str_method,
from_str_nonconst,
from_u16,
from_usize,
from_yeet,
frontmatter,
fs_create_dir,
fsub_algebraic,
fsub_fast,
full,
fundamental,
fused_iterator,
future,
future_drop_poll,
future_output,
future_trait,
fxsr,
@@ -1199,61 +1031,22 @@
half_open_range_patterns,
half_open_range_patterns_in_slices,
hash,
hashmap_contains_key,
hashmap_drain_ty,
hashmap_insert,
hashmap_iter_mut_ty,
hashmap_iter_ty,
hashmap_keys_ty,
hashmap_values_mut_ty,
hashmap_values_ty,
hashset_drain_ty,
hashset_iter,
hashset_iter_ty,
hexagon,
hexagon_target_feature,
hidden,
hide,
hint,
homogeneous_aggregate,
host,
html_favicon_url,
html_logo_url,
html_no_source,
html_playground_url,
html_root_url,
hwaddress,
i,
i8,
i8_legacy_const_max,
i8_legacy_const_min,
i8_legacy_fn_max_value,
i8_legacy_fn_min_value,
i8_legacy_mod,
i16,
i16_legacy_const_max,
i16_legacy_const_min,
i16_legacy_fn_max_value,
i16_legacy_fn_min_value,
i16_legacy_mod,
i32,
i32_legacy_const_max,
i32_legacy_const_min,
i32_legacy_fn_max_value,
i32_legacy_fn_min_value,
i32_legacy_mod,
i64,
i64_legacy_const_max,
i64_legacy_const_min,
i64_legacy_fn_max_value,
i64_legacy_fn_min_value,
i64_legacy_mod,
i128,
i128_legacy_const_max,
i128_legacy_const_min,
i128_legacy_fn_max_value,
i128_legacy_fn_min_value,
i128_legacy_mod,
i128_type,
ident,
if_let,
@@ -1268,7 +1061,6 @@
impl_trait_in_bindings,
impl_trait_in_fn_trait_return,
impl_trait_projections,
implement_via_object,
implied_by,
import,
import_name_type,
@@ -1278,16 +1070,13 @@
in_band_lifetimes,
include,
include_bytes,
include_bytes_macro,
include_str,
include_str_macro,
inclusive_range_syntax,
index,
index_mut,
infer_outlives_requirements,
infer_static_outlives_requirements,
inherent_associated_types,
inherit,
initial,
inlateout,
inline,
@@ -1295,7 +1084,6 @@
inline_const_pat,
inout,
inputs,
instant_now,
instruction_set,
integer_: "integer", // underscore to avoid clashing with the function `sym::integer` below
integral,
@@ -1307,34 +1095,19 @@
into_try_type,
intra_doc_pointers,
intrinsics,
intrinsics_unaligned_volatile_load,
intrinsics_unaligned_volatile_store,
io_error_new,
io_errorkind,
io_stderr,
io_stdout,
irrefutable_let_patterns,
is,
is_auto,
is_val_statically_known,
isa_attribute,
isize,
isize_legacy_const_max,
isize_legacy_const_min,
isize_legacy_fn_max_value,
isize_legacy_fn_min_value,
isize_legacy_mod,
issue,
issue_5723_bootstrap,
issue_tracker_base_url,
item,
item_like_imports,
iter,
iter_cloned,
iter_copied,
iter_filter,
iter_mut,
iter_repeat,
iterator,
iterator_collect_fn,
kcfi,
@@ -1365,7 +1138,6 @@
lifetime,
lifetime_capture_rules_2024,
lifetimes,
likely,
line,
link,
link_arg_attribute,
@@ -1412,7 +1184,6 @@
macro_at_most_once_rep,
macro_attr,
macro_attributes_in_derive_output,
macro_concat,
macro_derive,
macro_escape,
macro_export,
@@ -1434,7 +1205,6 @@
masked,
match_beginning_vert,
match_default_bindings,
matches_macro,
maximumf16,
maximumf32,
maximumf64,
@@ -1449,14 +1219,10 @@
maybe_uninit_uninit,
maybe_uninit_zeroed,
mem_align_const,
mem_align_of,
mem_discriminant,
mem_drop,
mem_forget,
mem_replace,
mem_size_const,
mem_size_of,
mem_size_of_val,
mem_swap,
mem_uninitialized,
mem_variant_count,
@@ -1497,12 +1263,10 @@
mir_cast_unsize,
mir_checked,
mir_debuginfo,
mir_deinit,
mir_discriminant,
mir_drop,
mir_field,
mir_goto,
mir_len,
mir_make_place,
mir_move,
mir_offset,
@@ -1575,7 +1339,6 @@
never_type_fallback,
new,
new_binary,
new_const,
new_debug,
new_debug_noop,
new_display,
@@ -1587,10 +1350,7 @@
new_unchecked,
new_upper_exp,
new_upper_hex,
new_v1,
new_v1_formatted,
next,
niko,
nll,
no,
no_builtins,
@@ -1646,7 +1406,6 @@
opaque,
opaque_generic_const_args,
opaque_module_name_placeholder: "<opaque>",
open_options_new,
ops,
opt_out_copy,
optimize,
@@ -1655,14 +1414,10 @@
optin_builtin_traits,
option,
option_env,
option_expect,
option_unwrap,
options,
or,
or_patterns,
ord_cmp_method,
os_str_to_os_string,
os_string_as_os_str,
other,
out,
output,
@@ -1675,7 +1430,6 @@
panic_2015,
panic_2021,
panic_abort,
panic_any,
panic_bounds_check,
panic_cannot_unwind,
panic_const_add_overflow,
@@ -1725,22 +1479,17 @@
pat_param,
patchable_function_entry,
path,
path_main_separator,
path_to_pathbuf,
pathbuf_as_path,
pattern_complexity_limit,
pattern_parentheses,
pattern_type,
pattern_type_range_trait,
pattern_types,
permissions_from_mode,
phantom_data,
phase,
pic,
pie,
pin,
pin_ergonomics,
pin_macro,
pin_v2,
platform_intrinsics,
plugin,
@@ -1751,8 +1500,6 @@
pointee_trait,
pointer,
poll,
poll_next,
position,
post_cleanup: "post-cleanup",
post_dash_lto: "post-lto",
postfix_match,
@@ -1771,7 +1518,6 @@
precise_capturing,
precise_capturing_in_traits,
precise_pointer_size_matching,
precision,
predicates,
pref_align_of,
prefetch_read_data,
@@ -1784,8 +1530,6 @@
prelude_import,
preserves_flags,
prfchw_target_feature,
print_macro,
println_macro,
proc_dash_macro: "proc-macro",
proc_macro,
proc_macro_attribute,
@@ -1797,9 +1541,6 @@
proc_macro_mod,
proc_macro_non_items,
proc_macro_path_invoc,
process_abort,
process_exit,
profiler_builtins,
profiler_runtime,
ptr,
ptr_cast,
@@ -1808,7 +1549,6 @@
ptr_const_is_null,
ptr_copy,
ptr_copy_nonoverlapping,
ptr_eq,
ptr_from_ref,
ptr_guaranteed_cmp,
ptr_is_null,
@@ -1820,14 +1560,9 @@
ptr_offset_from_unsigned,
ptr_read,
ptr_read_unaligned,
ptr_read_volatile,
ptr_replace,
ptr_slice_from_raw_parts,
ptr_slice_from_raw_parts_mut,
ptr_swap,
ptr_swap_nonoverlapping,
ptr_without_provenance,
ptr_without_provenance_mut,
ptr_write,
ptr_write_bytes,
ptr_write_unaligned,
@@ -1844,7 +1579,6 @@
question_mark,
quote,
range_inclusive_new,
range_step,
raw_dash_dylib: "raw-dylib",
raw_dylib,
raw_dylib_elf,
@@ -1852,11 +1586,6 @@
raw_identifiers,
raw_ref_op,
re_rebalance_coherence,
read_enum,
read_enum_variant,
read_enum_variant_arg,
read_struct,
read_struct_field,
read_via_copy,
readonly,
realloc,
@@ -1905,8 +1634,6 @@
residual,
result,
result_ffi_guarantees,
result_ok_method,
resume,
return_position_impl_trait_in_trait,
return_type_notation,
riscv32,
@@ -1925,7 +1652,6 @@
roundf32,
roundf64,
roundf128,
rt,
rtm_target_feature,
runtime,
rust,
@@ -2041,7 +1767,6 @@
rustc_regions,
rustc_reservation_impl,
rustc_scalable_vector,
rustc_serialize,
rustc_should_not_be_called_on_const_items,
rustc_simd_monomorphize_lane_limit,
rustc_skip_during_method_dispatch,
@@ -2061,7 +1786,6 @@
rustfmt,
rvalue_static_promotion,
rwpi,
s,
s390x,
s390x_target_feature,
s390x_target_feature_vector,
@@ -2071,7 +1795,6 @@
sanitizer_cfi_normalize_integers,
sanitizer_runtime,
saturating_add,
saturating_div,
saturating_sub,
sdylib,
search_unbox,
@@ -2091,8 +1814,6 @@
show,
shr,
shr_assign,
sig_dfl,
sig_ign,
signed,
simd,
simd_add,
@@ -2182,13 +1903,10 @@
size_of_val,
sized,
sized_hierarchy,
skip,
slice,
slice_from_raw_parts,
slice_from_raw_parts_mut,
slice_from_ref,
slice_get_unchecked,
slice_iter,
slice_len_fn,
slice_patterns,
slicing_syntax,
@@ -2229,8 +1947,6 @@
stop_after_dataflow,
store,
str,
str_chars,
str_ends_with,
str_from_utf8,
str_from_utf8_mut,
str_from_utf8_unchecked,
@@ -2239,20 +1955,8 @@
str_inherent_from_utf8_mut,
str_inherent_from_utf8_unchecked,
str_inherent_from_utf8_unchecked_mut,
str_len,
str_split_whitespace,
str_starts_with,
str_trim,
str_trim_end,
str_trim_start,
strict_provenance_lints,
string_as_mut_str,
string_as_str,
string_deref_patterns,
string_from_utf8,
string_insert_str,
string_new,
string_push_str,
stringify,
struct_field_attributes,
struct_inherit,
@@ -2268,9 +1972,6 @@
sym,
sync,
synthetic,
sys_mutex_lock,
sys_mutex_try_lock,
sys_mutex_unlock,
t32,
target,
target_abi,
@@ -2305,16 +2006,12 @@
test_unstable_lint,
thread,
thread_local,
thread_local_macro,
three_way_compare,
thumb2,
thumb_mode: "thumb-mode",
tmm_reg,
to_owned_method,
to_string,
to_string_method,
to_vec,
todo_macro,
tool_attributes,
tool_lints,
trace_macros,
@@ -2340,7 +2037,6 @@
try_blocks_heterogeneous,
try_capture,
try_from,
try_from_fn,
try_into,
try_trait_v2,
try_trait_v2_residual,
@@ -2417,7 +2113,6 @@
underscore_imports,
underscore_lifetimes,
uniform_paths,
unimplemented_macro,
unit,
universal_impl_trait,
unix,
@@ -2494,17 +2189,6 @@
variant_count,
variants,
vec,
vec_as_mut_slice,
vec_as_slice,
vec_from_elem,
vec_is_empty,
vec_macro,
vec_new,
vec_pop,
vec_reserve,
vec_with_capacity,
vecdeque_iter,
vecdeque_reserve,
vector,
verbatim,
version,
+1 -1
View File
@@ -1398,7 +1398,7 @@ fn is_type_alias(&self) -> bool {
/// use rustdoc::format::cache::Cache;
/// use rustdoc::clean::types::{Type, PrimitiveType};
/// let cache = Cache::new(false);
/// let generic = Type::Generic(rustc_span::symbol::sym::Any);
/// let generic = Type::Generic(Symbol::intern("T"));
/// let unit = Type::Primitive(PrimitiveType::Unit);
/// assert!(!generic.is_doc_subtype_of(&unit, &cache));
/// assert!(unit.is_doc_subtype_of(&generic, &cache));
+7 -5
View File
@@ -73,9 +73,11 @@ fn should_not_trim() {
fn is_same_generic() {
use crate::clean::types::{PrimitiveType, Type};
use crate::formats::cache::Cache;
let cache = Cache::new(false, false);
let generic = Type::Generic(rustc_span::symbol::sym::Any);
let unit = Type::Primitive(PrimitiveType::Unit);
assert!(!generic.is_doc_subtype_of(&unit, &cache));
assert!(unit.is_doc_subtype_of(&generic, &cache));
create_default_session_globals_then(|| {
let cache = Cache::new(false, false);
let generic = Type::Generic(Symbol::intern("T"));
let unit = Type::Primitive(PrimitiveType::Unit);
assert!(!generic.is_doc_subtype_of(&unit, &cache));
assert!(unit.is_doc_subtype_of(&generic, &cache));
})
}
+7 -7
View File
@@ -22,8 +22,8 @@
use rustc_hir::{ConstStability, StabilityLevel, StableSince};
use rustc_metadata::creader::CStore;
use rustc_middle::ty::{self, TyCtxt, TypingMode};
use rustc_span::Symbol;
use rustc_span::symbol::kw;
use rustc_span::{Symbol, sym};
use tracing::{debug, trace};
use super::url_parts_builder::UrlPartsBuilder;
@@ -627,8 +627,8 @@ pub(crate) fn href_relative_parts(fqp: &[Symbol], relative_to_fqp: &[Symbol]) ->
if f != r {
let dissimilar_part_count = relative_to_fqp.len() - i;
let fqp_module = &fqp[i..];
return iter::repeat_n(sym::dotdot, dissimilar_part_count)
.chain(fqp_module.iter().copied())
return iter::repeat_n("..", dissimilar_part_count)
.chain(fqp_module.iter().map(|s| s.as_str()))
.collect();
}
}
@@ -640,7 +640,7 @@ pub(crate) fn href_relative_parts(fqp: &[Symbol], relative_to_fqp: &[Symbol]) ->
Ordering::Greater => {
// e.g. linking to std::sync from std::sync::atomic
let dissimilar_part_count = relative_to_fqp.len() - fqp.len();
iter::repeat_n(sym::dotdot, dissimilar_part_count).collect()
iter::repeat_n("..", dissimilar_part_count).collect()
}
Ordering::Equal => {
// linking to the same module
@@ -773,10 +773,10 @@ fn primitive_link_fragment(
ExternalLocation::Local => {
let cname_sym = ExternalCrate { crate_num: def_id.krate }.name(cx.tcx());
Some(if cx.current.first() == Some(&cname_sym) {
iter::repeat_n(sym::dotdot, cx.current.len() - 1).collect()
iter::repeat_n("..", cx.current.len() - 1).collect()
} else {
iter::repeat_n(sym::dotdot, cx.current.len())
.chain(iter::once(cname_sym))
iter::repeat_n("..", cx.current.len())
.chain(iter::once(cname_sym.as_str()))
.collect()
})
}
@@ -2,13 +2,14 @@
use clippy_config::types::{DisallowedPathWithoutReplacement, create_disallowed_map};
use clippy_utils::diagnostics::span_lint_and_then;
use clippy_utils::paths::{self, PathNS};
use clippy_utils::sym;
use rustc_hir as hir;
use rustc_hir::def_id::{DefId, DefIdMap};
use rustc_lint::{LateContext, LateLintPass};
use rustc_middle::mir::CoroutineLayout;
use rustc_middle::ty::TyCtxt;
use rustc_session::impl_lint_pass;
use rustc_span::{Span, sym};
use rustc_span::Span;
declare_clippy_lint! {
/// ### What it does
@@ -1,5 +1,5 @@
use clippy_utils::diagnostics::span_lint_and_sugg;
use clippy_utils::is_default_equivalent;
use clippy_utils::{is_default_equivalent, sym};
use clippy_utils::macros::macro_backtrace;
use clippy_utils::res::{MaybeDef, MaybeResPath};
use clippy_utils::ty::expr_sig;
@@ -9,7 +9,7 @@
use rustc_hir::{AmbigArg, Block, Expr, ExprKind, HirId, LangItem, LetStmt, Node, QPath, Ty, TyKind};
use rustc_lint::{LateContext, LateLintPass, LintContext};
use rustc_session::declare_lint_pass;
use rustc_span::{Span, sym};
use rustc_span::Span;
declare_clippy_lint! {
/// ### What it does
@@ -1,5 +1,6 @@
use clippy_utils::diagnostics::span_lint_and_sugg;
use clippy_utils::source::SpanRangeExt;
use clippy_utils::sym;
use rustc_errors::Applicability;
use rustc_hir::{Expr, ExprKind};
use rustc_lint::LateContext;
@@ -12,7 +13,7 @@ pub(super) fn check(cx: &LateContext<'_>, expr: &Expr<'_>, cast_expr: &Expr<'_>,
if let ty::RawPtr(ptrty, Mutability::Mut) = cast_to.kind()
&& let ty::RawPtr(_, Mutability::Not) = cx.typeck_results().node_type(cast_expr.hir_id).kind()
&& let ExprKind::MethodCall(method_name, receiver, [], _) = cast_expr.peel_blocks().kind
&& method_name.ident.name == rustc_span::sym::as_ptr
&& method_name.ident.name == sym::as_ptr
&& let Some(as_ptr_did) = cx
.typeck_results()
.type_dependent_def_id(cast_expr.peel_blocks().hir_id)
@@ -3,7 +3,7 @@
use clippy_utils::res::MaybeResPath;
use clippy_utils::source::{SpanRangeExt, snippet_opt};
use clippy_utils::visitors::{Visitable, for_each_expr_without_closures};
use clippy_utils::{get_parent_expr, is_hir_ty_cfg_dependant, is_ty_alias};
use clippy_utils::{get_parent_expr, is_hir_ty_cfg_dependant, is_ty_alias, sym};
use rustc_ast::{LitFloatType, LitIntType, LitKind};
use rustc_errors::Applicability;
use rustc_hir::def::{DefKind, Res};
@@ -11,7 +11,7 @@
use rustc_lint::{LateContext, LintContext};
use rustc_middle::ty::adjustment::Adjust;
use rustc_middle::ty::{self, FloatTy, InferTy, Ty};
use rustc_span::{Symbol, sym};
use rustc_span::Symbol;
use std::ops::ControlFlow;
use super::UNNECESSARY_CAST;
@@ -1,12 +1,11 @@
use clippy_utils::diagnostics::span_lint;
use clippy_utils::get_enclosing_block;
use clippy_utils::{get_enclosing_block, sym};
use clippy_utils::res::{MaybeDef, MaybeResPath};
use clippy_utils::visitors::{Visitable, for_each_expr};
use core::ops::ControlFlow;
use rustc_hir::{Body, ExprKind, HirId, LangItem, LetStmt, Node, PatKind};
use rustc_lint::{LateContext, LateLintPass};
use rustc_session::declare_lint_pass;
use rustc_span::symbol::sym;
declare_clippy_lint! {
/// ### What it does
@@ -1,9 +1,9 @@
use clippy_utils::diagnostics::span_lint_and_then;
use clippy_utils::sym;
use rustc_errors::Applicability;
use rustc_hir::{Expr, ExprKind, QPath};
use rustc_lint::{LateContext, LateLintPass};
use rustc_session::declare_lint_pass;
use rustc_span::sym;
declare_clippy_lint! {
/// ### What it does
@@ -1,6 +1,6 @@
use clippy_config::Conf;
use clippy_utils::diagnostics::span_lint_and_then;
use clippy_utils::is_in_test;
use clippy_utils::{is_in_test, sym};
use clippy_utils::macros::{MacroCall, macro_backtrace};
use clippy_utils::source::snippet_with_applicability;
use rustc_data_structures::fx::FxHashSet;
@@ -8,7 +8,7 @@
use rustc_hir::{Arm, Closure, ClosureKind, CoroutineKind, Expr, ExprKind, LetStmt, LocalSource, Node, Stmt, StmtKind};
use rustc_lint::{LateContext, LateLintPass, LintContext};
use rustc_session::impl_lint_pass;
use rustc_span::{Span, SyntaxContext, sym};
use rustc_span::{Span, SyntaxContext};
declare_clippy_lint! {
/// ### What it does
@@ -1,11 +1,11 @@
use clippy_utils::diagnostics::span_lint_and_sugg;
use clippy_utils::source::snippet_with_context;
use clippy_utils::{last_path_segment, std_or_core};
use clippy_utils::{last_path_segment, std_or_core, sym};
use rustc_errors::Applicability;
use rustc_hir::{Expr, ExprKind, GenericArg, QPath, TyKind, def};
use rustc_lint::{LateContext, LateLintPass};
use rustc_session::declare_lint_pass;
use rustc_span::{SyntaxContext, sym};
use rustc_span::SyntaxContext;
declare_clippy_lint! {
/// ### What it does
@@ -3,9 +3,7 @@
use clippy_utils::source::{snippet_with_applicability, snippet_with_context};
use clippy_utils::sugg::has_enclosing_paren;
use clippy_utils::ty::{adjust_derefs_manually_drop, implements_trait, is_manually_drop, peel_and_count_ty_refs};
use clippy_utils::{
DefinedTy, ExprUseNode, expr_use_ctxt, get_parent_expr, is_block_like, is_from_proc_macro, is_lint_allowed,
};
use clippy_utils::{DefinedTy, ExprUseNode, expr_use_ctxt, get_parent_expr, is_block_like, is_from_proc_macro, is_lint_allowed, sym};
use rustc_ast::util::parser::ExprPrecedence;
use rustc_data_structures::fx::FxIndexMap;
use rustc_errors::Applicability;
@@ -19,7 +17,6 @@
use rustc_middle::ty::adjustment::{Adjust, Adjustment, AutoBorrow, AutoBorrowMutability};
use rustc_middle::ty::{self, Ty, TyCtxt, TypeVisitableExt, TypeckResults};
use rustc_session::impl_lint_pass;
use rustc_span::symbol::sym;
use rustc_span::{Span, Symbol};
use std::borrow::Cow;
@@ -1,14 +1,14 @@
use std::ops::ControlFlow;
use clippy_utils::diagnostics::span_lint_hir_and_then;
use clippy_utils::{is_lint_allowed, paths};
use clippy_utils::{is_lint_allowed, paths, sym};
use rustc_hir::def_id::LocalDefId;
use rustc_hir::intravisit::{FnKind, Visitor, walk_expr, walk_fn, walk_item};
use rustc_hir::{self as hir, BlockCheckMode, BodyId, Expr, ExprKind, FnDecl, HirId, Item, UnsafeSource};
use rustc_lint::LateContext;
use rustc_middle::hir::nested_filter;
use rustc_middle::ty::{self, Ty};
use rustc_span::{Span, sym};
use rustc_span::Span;
use super::UNSAFE_DERIVE_DESERIALIZE;
+2 -5
View File
@@ -2,10 +2,7 @@
use clippy_utils::source::{reindent_multiline, snippet_indent, snippet_with_applicability, snippet_with_context};
use clippy_utils::ty::is_copy;
use clippy_utils::visitors::for_each_expr;
use clippy_utils::{
SpanlessEq, can_move_expr_to_closure_no_visit, desugar_await, higher, is_expr_final_block_expr,
is_expr_used_or_unified, paths, peel_hir_expr_while, span_contains_non_whitespace,
};
use clippy_utils::{SpanlessEq, can_move_expr_to_closure_no_visit, desugar_await, higher, is_expr_final_block_expr, is_expr_used_or_unified, paths, peel_hir_expr_while, span_contains_non_whitespace, sym};
use core::fmt::{self, Write};
use rustc_errors::Applicability;
use rustc_hir::def_id::DefId;
@@ -14,7 +11,7 @@
use rustc_hir::{Block, Expr, ExprKind, HirId, Pat, Stmt, StmtKind, UnOp};
use rustc_lint::{LateContext, LateLintPass};
use rustc_session::declare_lint_pass;
use rustc_span::{DUMMY_SP, Span, SyntaxContext, sym};
use rustc_span::{DUMMY_SP, Span, SyntaxContext};
use std::ops::ControlFlow;
declare_clippy_lint! {
@@ -1,12 +1,12 @@
use clippy_utils::diagnostics::{span_lint, span_lint_hir_and_then};
use clippy_utils::res::MaybeResPath;
use clippy_utils::sym;
use clippy_utils::ty::implements_trait;
use rustc_hir::def_id::{DefId, LocalDefId};
use rustc_hir::{Item, ItemKind};
use rustc_lint::{LateContext, LateLintPass};
use rustc_middle::ty::Visibility;
use rustc_session::declare_lint_pass;
use rustc_span::sym;
declare_clippy_lint! {
/// ### What it does
+1 -1
View File
@@ -1,8 +1,8 @@
use clippy_utils::diagnostics::span_lint;
use clippy_utils::sym;
use rustc_hir::{Expr, ExprKind, Item, ItemKind, OwnerNode};
use rustc_lint::{LateContext, LateLintPass};
use rustc_session::declare_lint_pass;
use rustc_span::sym;
declare_clippy_lint! {
/// ### What it does
@@ -12,7 +12,7 @@
use clippy_utils::res::MaybeDef;
use clippy_utils::source::{SpanRangeExt, snippet};
use clippy_utils::ty::implements_trait;
use clippy_utils::{is_from_proc_macro, is_in_test, trait_ref_of_method};
use clippy_utils::{is_from_proc_macro, is_in_test, sym, trait_ref_of_method};
use itertools::Itertools;
use rustc_ast::{
FormatArgPosition, FormatArgPositionKind, FormatArgsPiece, FormatArgumentKind, FormatCount, FormatOptions,
@@ -28,7 +28,7 @@
use rustc_middle::ty::{self, GenericArg, List, TraitRef, Ty, TyCtxt, Upcast};
use rustc_session::impl_lint_pass;
use rustc_span::edition::Edition::Edition2021;
use rustc_span::{Span, Symbol, sym};
use rustc_span::{Span, Symbol};
use rustc_trait_selection::infer::TyCtxtInferExt;
use rustc_trait_selection::traits::{Obligation, ObligationCause, Selection, SelectionContext};
@@ -2,12 +2,12 @@
use clippy_utils::macros::{FormatArgsStorage, format_args_inputs_span, root_macro_call_first_node};
use clippy_utils::res::MaybeDef;
use clippy_utils::source::{snippet_with_applicability, snippet_with_context};
use clippy_utils::std_or_core;
use clippy_utils::{std_or_core, sym};
use rustc_errors::Applicability;
use rustc_hir::{AssignOpKind, Expr, ExprKind, LangItem, MatchSource};
use rustc_lint::{LateContext, LateLintPass, LintContext};
use rustc_session::impl_lint_pass;
use rustc_span::{Span, sym};
use rustc_span::Span;
declare_clippy_lint! {
/// ### What it does
@@ -1,9 +1,9 @@
use clippy_utils::diagnostics::span_lint;
use clippy_utils::higher::ForLoop;
use clippy_utils::res::MaybeDef;
use clippy_utils::sym;
use rustc_lint::{LateContext, LateLintPass};
use rustc_session::declare_lint_pass;
use rustc_span::sym;
declare_clippy_lint! {
/// ### What it does
@@ -2,11 +2,11 @@
use clippy_utils::diagnostics::span_lint_and_then;
use clippy_utils::macros::root_macro_call_first_node;
use clippy_utils::source::snippet_opt;
use clippy_utils::sym;
use rustc_ast::{AttrArgs, AttrItemKind, AttrKind, Attribute, LitKind};
use rustc_hir::{Expr, ExprKind};
use rustc_lint::{EarlyContext, EarlyLintPass, LateContext, LateLintPass};
use rustc_session::impl_lint_pass;
use rustc_span::sym;
declare_clippy_lint! {
/// ### What it does
@@ -2,7 +2,7 @@
use clippy_config::Conf;
use clippy_utils::diagnostics::span_lint_and_then;
use clippy_utils::is_from_proc_macro;
use clippy_utils::{is_from_proc_macro, sym};
use clippy_utils::macros::macro_backtrace;
use clippy_utils::source::snippet;
use rustc_hir::{Expr, ExprKind, Item, ItemKind, Node};
@@ -10,7 +10,7 @@
use rustc_middle::ty;
use rustc_middle::ty::layout::LayoutOf;
use rustc_session::impl_lint_pass;
use rustc_span::{Span, sym};
use rustc_span::Span;
declare_clippy_lint! {
/// ### What it does
@@ -1,6 +1,6 @@
use clippy_config::Conf;
use clippy_utils::diagnostics::span_lint_and_then;
use clippy_utils::is_from_proc_macro;
use clippy_utils::{is_from_proc_macro, sym};
use clippy_utils::msrvs::{self, Msrv};
use clippy_utils::source::SpanRangeExt;
use hir::def_id::DefId;
@@ -10,7 +10,7 @@
use rustc_lint::{LateContext, LateLintPass, LintContext};
use rustc_session::impl_lint_pass;
use rustc_span::symbol::kw;
use rustc_span::{Symbol, sym};
use rustc_span::Symbol;
declare_clippy_lint! {
/// ### What it does
@@ -1,10 +1,10 @@
use clippy_utils::SpanlessEq;
use clippy_utils::{sym, SpanlessEq};
use clippy_utils::diagnostics::span_lint_and_then;
use clippy_utils::source::snippet;
use rustc_errors::Applicability;
use rustc_hir::{Expr, ExprKind, Pat, Stmt, StmtKind, UnOp};
use rustc_lint::LateContext;
use rustc_span::{Span, Symbol, sym};
use rustc_span::{Span, Symbol};
use std::borrow::Cow;
use super::MANUAL_WHILE_LET_SOME;
@@ -2,11 +2,11 @@
use clippy_utils::diagnostics::span_lint_hir_and_then;
use clippy_utils::res::MaybeDef;
use clippy_utils::source::{SpanRangeExt, walk_span_to_context};
use clippy_utils::{expr_or_init, pat_is_wild};
use clippy_utils::{expr_or_init, pat_is_wild, sym};
use rustc_errors::Applicability;
use rustc_hir::{Closure, Expr, ExprKind, Pat, PatKind, TyKind};
use rustc_lint::LateContext;
use rustc_span::{Span, SyntaxContext, sym};
use rustc_span::{Span, SyntaxContext};
pub(super) fn check<'tcx>(
cx: &LateContext<'tcx>,
@@ -6,13 +6,12 @@
use clippy_utils::source::HasSession as _;
use clippy_utils::sugg::Sugg;
use clippy_utils::ty::peel_and_count_ty_refs;
use clippy_utils::{eq_expr_value, peel_blocks, span_contains_comment};
use clippy_utils::{eq_expr_value, peel_blocks, span_contains_comment, sym};
use rustc_errors::Applicability;
use rustc_hir::{BinOpKind, Expr, ExprKind};
use rustc_lint::{LateContext, LateLintPass};
use rustc_middle::ty::{self, Ty};
use rustc_session::impl_lint_pass;
use rustc_span::sym;
declare_clippy_lint! {
/// ### What it does
@@ -1,6 +1,6 @@
use clippy_config::Conf;
use clippy_utils::diagnostics::span_lint_and_sugg;
use clippy_utils::get_parent_expr;
use clippy_utils::{get_parent_expr, sym};
use clippy_utils::msrvs::{self, Msrv};
use clippy_utils::source::snippet_with_context;
use rustc_ast::ast::LitKind;
@@ -10,7 +10,7 @@
use rustc_lint::{LateContext, LateLintPass};
use rustc_middle::ty::{self, Ty};
use rustc_session::impl_lint_pass;
use rustc_span::{Span, sym};
use rustc_span::Span;
declare_clippy_lint! {
/// ### What it does
@@ -1,7 +1,7 @@
use clippy_config::Conf;
use clippy_utils::diagnostics::span_lint_and_sugg;
use clippy_utils::msrvs::{self, Msrv};
use clippy_utils::peel_hir_expr_refs;
use clippy_utils::{peel_hir_expr_refs, sym};
use clippy_utils::res::{MaybeDef, MaybeTypeckRes};
use rustc_errors::Applicability;
use rustc_hir::def::{DefKind, Res};
@@ -9,7 +9,6 @@
use rustc_lint::{LateContext, LateLintPass};
use rustc_middle::ty;
use rustc_session::impl_lint_pass;
use rustc_span::sym;
declare_clippy_lint! {
/// ### What it does
@@ -1,5 +1,5 @@
use clippy_config::Conf;
use clippy_utils::SpanlessEq;
use clippy_utils::{sym, SpanlessEq};
use clippy_utils::diagnostics::span_lint_and_sugg;
use clippy_utils::msrvs::{self, Msrv};
use clippy_utils::res::MaybeDef;
@@ -11,7 +11,7 @@
use rustc_lint::{LateContext, LateLintPass};
use rustc_session::impl_lint_pass;
use rustc_span::Span;
use rustc_span::symbol::{Symbol, sym};
use rustc_span::symbol::Symbol;
const ACCEPTABLE_METHODS: [Symbol; 5] = [
sym::binaryheap_iter,
@@ -3,13 +3,12 @@
use clippy_utils::msrvs::{self, Msrv};
use clippy_utils::source::snippet_with_context;
use clippy_utils::ty::peel_and_count_ty_refs;
use clippy_utils::{expr_or_init, is_in_const_context, std_or_core};
use clippy_utils::{expr_or_init, is_in_const_context, std_or_core, sym};
use rustc_errors::Applicability;
use rustc_hir::{BinOpKind, Expr, ExprKind};
use rustc_lint::{LateContext, LateLintPass};
use rustc_middle::ty;
use rustc_session::impl_lint_pass;
use rustc_span::symbol::sym;
declare_clippy_lint! {
/// ### What it does
@@ -4,7 +4,7 @@
use clippy_utils::msrvs::{self, Msrv};
use clippy_utils::source::snippet_with_applicability;
use clippy_utils::usage::mutated_variables;
use clippy_utils::{eq_expr_value, higher};
use clippy_utils::{eq_expr_value, higher, sym};
use rustc_ast::BindingMode;
use rustc_ast::ast::LitKind;
use rustc_data_structures::fx::FxHashMap;
@@ -16,7 +16,7 @@
use rustc_middle::ty;
use rustc_session::impl_lint_pass;
use rustc_span::source_map::Spanned;
use rustc_span::{Symbol, SyntaxContext, sym};
use rustc_span::{Symbol, SyntaxContext};
use std::iter;
declare_clippy_lint! {
@@ -3,7 +3,7 @@
SpanRangeExt, expr_block, snippet, snippet_block_with_context, snippet_with_applicability, snippet_with_context,
};
use clippy_utils::ty::{implements_trait, peel_and_count_ty_refs};
use clippy_utils::{is_lint_allowed, is_unit_expr, peel_blocks, peel_hir_pat_refs, peel_n_hir_expr_refs};
use clippy_utils::{is_lint_allowed, is_unit_expr, peel_blocks, peel_hir_pat_refs, peel_n_hir_expr_refs, sym};
use core::ops::ControlFlow;
use rustc_arena::DroplessArena;
use rustc_errors::{Applicability, Diag};
@@ -12,7 +12,7 @@
use rustc_hir::{Arm, Expr, ExprKind, HirId, Node, Pat, PatExpr, PatExprKind, PatKind, QPath, StmtKind};
use rustc_lint::LateContext;
use rustc_middle::ty::{self, AdtDef, TyCtxt, TypeckResults, VariantDef};
use rustc_span::{Span, sym};
use rustc_span::Span;
use super::{MATCH_BOOL, SINGLE_MATCH, SINGLE_MATCH_ELSE};
@@ -5,15 +5,12 @@
use clippy_utils::source::{snippet_with_applicability, snippet_with_context};
use clippy_utils::sugg::Sugg;
use clippy_utils::ty::is_non_aggregate_primitive_type;
use clippy_utils::{
as_some_expr, is_default_equivalent, is_expr_used_or_unified, is_none_expr, peel_ref_operators, std_or_core,
};
use clippy_utils::{as_some_expr, is_default_equivalent, is_expr_used_or_unified, is_none_expr, peel_ref_operators, std_or_core, sym};
use rustc_errors::Applicability;
use rustc_hir::{Expr, ExprKind};
use rustc_lint::{LateContext, LateLintPass};
use rustc_session::impl_lint_pass;
use rustc_span::Span;
use rustc_span::symbol::sym;
declare_clippy_lint! {
/// ### What it does
@@ -2,12 +2,11 @@
use clippy_utils::res::{MaybeDef, MaybeResPath};
use clippy_utils::source::snippet_with_applicability;
use clippy_utils::visitors::is_local_used;
use clippy_utils::{peel_blocks, peel_ref_operators, strip_pat_refs};
use clippy_utils::{peel_blocks, peel_ref_operators, strip_pat_refs, sym};
use rustc_errors::Applicability;
use rustc_hir::{BinOpKind, Closure, Expr, ExprKind, PatKind};
use rustc_lint::LateContext;
use rustc_middle::ty::{self, UintTy};
use rustc_span::sym;
use super::NAIVE_BYTECOUNT;
@@ -1,11 +1,10 @@
use clippy_utils::diagnostics::span_lint_and_sugg;
use clippy_utils::is_range_full;
use clippy_utils::{is_range_full, sym};
use clippy_utils::res::MaybeDef;
use rustc_errors::Applicability;
use rustc_hir::{Expr, ExprKind, LangItem, QPath};
use rustc_lint::LateContext;
use rustc_span::Span;
use rustc_span::symbol::sym;
use super::CLEAR_WITH_DRAIN;
@@ -2,13 +2,13 @@
use clippy_utils::diagnostics::span_lint_and_sugg;
use clippy_utils::res::MaybeDef;
use clippy_utils::source::snippet;
use clippy_utils::{is_range_full, std_or_core};
use clippy_utils::{is_range_full, std_or_core, sym};
use rustc_errors::Applicability;
use rustc_hir::{Expr, ExprKind, LangItem, Path, QPath};
use rustc_lint::LateContext;
use rustc_middle::ty;
use rustc_middle::ty::Ty;
use rustc_span::{Symbol, sym};
use rustc_span::Symbol;
/// Checks if both types match the given diagnostic item, e.g.:
///
@@ -3,12 +3,11 @@
use clippy_utils::res::MaybeDef;
use clippy_utils::source::snippet_with_applicability;
use clippy_utils::visitors::for_each_expr;
use clippy_utils::{contains_return, is_inside_always_const_context, peel_blocks};
use clippy_utils::{contains_return, is_inside_always_const_context, peel_blocks, sym};
use rustc_errors::Applicability;
use rustc_hir as hir;
use rustc_lint::LateContext;
use rustc_span::Span;
use rustc_span::symbol::sym;
use std::borrow::Cow;
use std::ops::ControlFlow;
@@ -1,9 +1,9 @@
use clippy_utils::diagnostics::span_lint_and_then;
use clippy_utils::get_parent_expr;
use clippy_utils::{get_parent_expr, sym};
use clippy_utils::res::MaybeDef;
use rustc_hir as hir;
use rustc_lint::LateContext;
use rustc_span::{Span, sym};
use rustc_span::Span;
use super::FILETYPE_IS_FILE;
@@ -3,7 +3,7 @@
use clippy_utils::res::{MaybeDef, MaybeTypeckRes};
use clippy_utils::source::{SpanRangeExt, snippet_with_context};
use clippy_utils::ty::is_copy;
use clippy_utils::{CaptureKind, can_move_expr_to_closure, contains_return, is_from_proc_macro, peel_blocks};
use clippy_utils::{CaptureKind, can_move_expr_to_closure, contains_return, is_from_proc_macro, peel_blocks, sym};
use rustc_ast::Mutability;
use rustc_data_structures::fx::FxHashSet;
use rustc_errors::Applicability;
@@ -11,7 +11,7 @@
use rustc_lint::{LateContext, LintContext};
use rustc_middle::ty::Binder;
use rustc_middle::ty::adjustment::Adjust;
use rustc_span::{Span, sym};
use rustc_span::Span;
pub(super) fn check<'tcx>(cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>, arg: &Expr<'_>, call_span: Span) {
if !expr.span.in_external_macro(cx.sess().source_map())
@@ -1,12 +1,11 @@
use clippy_utils::diagnostics::{span_lint, span_lint_and_then};
use clippy_utils::path_to_local_with_projections;
use clippy_utils::{path_to_local_with_projections, sym};
use clippy_utils::source::snippet;
use clippy_utils::ty::implements_trait;
use rustc_ast::{BindingMode, Mutability};
use rustc_errors::Applicability;
use rustc_hir as hir;
use rustc_lint::LateContext;
use rustc_span::sym;
use super::FILTER_NEXT;
@@ -3,7 +3,7 @@
use clippy_utils::diagnostics::span_lint_and_sugg;
use clippy_utils::res::{MaybeDef, MaybeQPath};
use clippy_utils::source::snippet_with_applicability;
use clippy_utils::sugg;
use clippy_utils::{sugg, sym};
use clippy_utils::ty::implements_trait;
use rustc_ast::join_path_idents;
use rustc_errors::Applicability;
@@ -11,7 +11,6 @@
use rustc_hir::{self as hir, Expr, ExprKind, GenericArg, QPath, TyKind};
use rustc_lint::LateContext;
use rustc_middle::ty::GenericParamDefKind;
use rustc_span::sym;
use super::FROM_ITER_INSTEAD_OF_COLLECT;
@@ -1,13 +1,13 @@
use clippy_utils::diagnostics::span_lint_and_sugg;
use clippy_utils::res::MaybeDef;
use clippy_utils::source::snippet_with_applicability;
use clippy_utils::sym;
use rustc_ast::LitKind;
use rustc_data_structures::packed::Pu128;
use rustc_errors::Applicability;
use rustc_hir as hir;
use rustc_lint::LateContext;
use rustc_span::source_map::Spanned;
use rustc_span::sym;
use super::GET_FIRST;
@@ -1,12 +1,11 @@
use clippy_utils::diagnostics::span_lint_and_sugg;
use clippy_utils::source::snippet_with_applicability;
use clippy_utils::{SpanlessEq, is_integer_literal};
use clippy_utils::{SpanlessEq, is_integer_literal, sym};
use rustc_errors::Applicability;
use rustc_hir::{BinOpKind, Expr, ExprKind};
use rustc_lint::LateContext;
use rustc_middle::ty;
use rustc_span::source_map::Spanned;
use rustc_span::sym;
use super::GET_LAST_WITH_LEN;
@@ -1,11 +1,10 @@
use super::utils::derefs_to_slice;
use clippy_utils::diagnostics::span_lint_and_then;
use clippy_utils::get_parent_expr;
use clippy_utils::{get_parent_expr, sym};
use clippy_utils::source::snippet_with_applicability;
use rustc_errors::Applicability;
use rustc_hir as hir;
use rustc_lint::LateContext;
use rustc_span::sym;
use super::GET_UNWRAP;
@@ -2,12 +2,12 @@
use clippy_utils::msrvs::{self, Msrv};
use clippy_utils::res::MaybeDef;
use clippy_utils::source::snippet_with_applicability;
use clippy_utils::sym;
use clippy_utils::ty::peel_and_count_ty_refs;
use rustc_errors::Applicability;
use rustc_hir as hir;
use rustc_lint::LateContext;
use rustc_middle::ty::{self, Ty};
use rustc_span::symbol::sym;
use super::INEFFICIENT_TO_STRING;
@@ -1,10 +1,10 @@
use clippy_utils::consts::{ConstEvalCtxt, Constant};
use clippy_utils::diagnostics::span_lint_and_then;
use clippy_utils::sym;
use rustc_data_structures::smallvec::SmallVec;
use rustc_errors::Applicability;
use rustc_hir::{Expr, ExprKind, QPath, TyKind};
use rustc_lint::LateContext;
use rustc_span::sym;
use super::IP_CONSTANT;
@@ -2,10 +2,11 @@
use clippy_utils::diagnostics::span_lint_and_sugg;
use clippy_utils::res::MaybeDef;
use clippy_utils::source::snippet_with_applicability;
use clippy_utils::sym;
use rustc_errors::Applicability;
use rustc_hir::Expr;
use rustc_lint::LateContext;
use rustc_span::{Symbol, sym};
use rustc_span::Symbol;
use super::ITER_COUNT;
@@ -1,12 +1,11 @@
use clippy_utils::diagnostics::span_lint_and_note;
use clippy_utils::expr_or_init;
use clippy_utils::{expr_or_init, sym};
use clippy_utils::higher::VecArgs;
use clippy_utils::res::{MaybeDef, MaybeTypeckRes};
use rustc_ast::LitKind;
use rustc_hir::{Expr, ExprKind};
use rustc_lint::LateContext;
use rustc_middle::ty::{self};
use rustc_span::sym;
use super::ITER_OUT_OF_BOUNDS;
@@ -1,10 +1,9 @@
use clippy_utils::diagnostics::span_lint_and_sugg;
use clippy_utils::is_range_full;
use clippy_utils::{is_range_full, sym};
use rustc_errors::Applicability;
use rustc_hir::{Expr, ExprKind, QPath};
use rustc_lint::LateContext;
use rustc_span::Span;
use rustc_span::symbol::sym;
use super::ITER_WITH_DRAIN;
@@ -1,5 +1,5 @@
use clippy_utils::diagnostics::span_lint_and_then;
use clippy_utils::expr_or_init;
use clippy_utils::{expr_or_init, sym};
use clippy_utils::res::MaybeDef;
use clippy_utils::source::snippet;
use rustc_ast::ast::LitKind;
@@ -7,7 +7,6 @@
use rustc_hir::{Expr, ExprKind};
use rustc_lint::LateContext;
use rustc_span::Span;
use rustc_span::symbol::sym;
use super::JOIN_ABSOLUTE_PATHS;
@@ -1,10 +1,10 @@
use clippy_utils::diagnostics::span_lint_and_sugg;
use clippy_utils::res::{MaybeDef, MaybeTypeckRes};
use clippy_utils::sym;
use clippy_utils::ty::implements_trait;
use rustc_errors::Applicability;
use rustc_hir::Expr;
use rustc_lint::LateContext;
use rustc_span::symbol::sym;
pub(super) fn check<'tcx>(
cx: &LateContext<'tcx>,
@@ -2,11 +2,10 @@
use clippy_utils::msrvs::{self, Msrv};
use clippy_utils::res::{MaybeDef, MaybeTypeckRes};
use clippy_utils::source::{snippet, snippet_with_context};
use clippy_utils::{expr_use_ctxt, fn_def_id, std_or_core};
use clippy_utils::{expr_use_ctxt, fn_def_id, std_or_core, sym};
use rustc_errors::Applicability;
use rustc_hir::{Expr, ExprKind};
use rustc_lint::LateContext;
use rustc_span::sym;
use super::MANUAL_REPEAT_N;
@@ -2,12 +2,12 @@
use clippy_utils::res::{MaybeDef, MaybeResPath};
use clippy_utils::source::{snippet_with_applicability, snippet_with_context};
use clippy_utils::sugg::Sugg;
use clippy_utils::sym;
use rustc_ast::LitKind;
use rustc_errors::Applicability;
use rustc_hir::{Expr, ExprKind, LangItem};
use rustc_lint::LateContext;
use rustc_middle::ty::{self, Ty};
use rustc_span::symbol::sym;
use std::borrow::Cow;
use super::MANUAL_STR_REPEAT;
@@ -1,13 +1,13 @@
use clippy_utils::diagnostics::span_lint_and_sugg;
use clippy_utils::msrvs::{self, Msrv};
use clippy_utils::peel_blocks;
use clippy_utils::{peel_blocks, sym};
use clippy_utils::res::{MaybeDef, MaybeResPath};
use clippy_utils::source::snippet;
use rustc_errors::Applicability;
use rustc_hir as hir;
use rustc_lint::LateContext;
use rustc_middle::ty;
use rustc_span::{Symbol, sym};
use rustc_span::Symbol;
use super::OPTION_AS_REF_DEREF;
@@ -1,10 +1,10 @@
use clippy_utils::diagnostics::span_lint_and_sugg;
use clippy_utils::res::MaybeDef;
use clippy_utils::sym;
use rustc_ast::ast::LitKind;
use rustc_errors::Applicability;
use rustc_hir::{Expr, ExprKind};
use rustc_lint::LateContext;
use rustc_span::symbol::sym;
use std::path::{Component, Path};
use super::PATH_BUF_PUSH_OVERWRITE;
@@ -3,12 +3,12 @@
use clippy_utils::msrvs::{self, Msrv};
use clippy_utils::res::MaybeDef;
use clippy_utils::source::snippet;
use clippy_utils::sym;
use rustc_ast::{LitKind, StrStyle};
use rustc_data_structures::fx::FxHashSet;
use rustc_errors::Applicability;
use rustc_hir::{Expr, ExprKind};
use rustc_lint::LateContext;
use rustc_span::sym;
use std::fmt::Write;
pub const DEFAULT_ALLOWED_DOTFILES: &[&str] = &[
@@ -1,12 +1,12 @@
use super::SINGLE_CHAR_ADD_STR;
use clippy_utils::diagnostics::span_lint_and_sugg;
use clippy_utils::source::{snippet_with_applicability, str_literal_to_char_literal};
use clippy_utils::sym;
use rustc_ast::BorrowKind;
use rustc_errors::Applicability;
use rustc_hir::{Expr, ExprKind};
use rustc_lint::LateContext;
use rustc_middle::ty;
use rustc_span::sym;
pub(super) fn check(cx: &LateContext<'_>, expr: &Expr<'_>, receiver: &Expr<'_>, args: &[Expr<'_>]) {
if let Some(fn_def_id) = cx.typeck_results().type_dependent_def_id(expr.hir_id) {
@@ -1,8 +1,9 @@
use clippy_utils::diagnostics::span_lint_and_then;
use clippy_utils::res::MaybeDef;
use clippy_utils::sym;
use rustc_errors::{Applicability, Diag};
use rustc_lint::LateContext;
use rustc_span::{Span, sym};
use rustc_span::Span;
use {rustc_ast as ast, rustc_hir as hir};
use super::SUSPICIOUS_COMMAND_ARG_SPACE;
@@ -1,10 +1,11 @@
use clippy_utils::diagnostics::span_lint_and_then;
use clippy_utils::res::MaybeDef;
use clippy_utils::sym;
use rustc_errors::Applicability;
use rustc_hir as hir;
use rustc_lint::LateContext;
use rustc_middle::ty::print::with_forced_trimmed_paths;
use rustc_span::{Span, sym};
use rustc_span::Span;
use super::SUSPICIOUS_TO_OWNED;
@@ -1,13 +1,14 @@
use crate::methods::TYPE_ID_ON_BOX;
use clippy_utils::diagnostics::span_lint_and_then;
use clippy_utils::source::snippet;
use clippy_utils::sym;
use rustc_errors::Applicability;
use rustc_hir::Expr;
use rustc_lint::LateContext;
use rustc_middle::ty::adjustment::{Adjust, Adjustment, DerefAdjustKind};
use rustc_middle::ty::print::with_forced_trimmed_paths;
use rustc_middle::ty::{self, ExistentialPredicate, Ty};
use rustc_span::{Span, sym};
use rustc_span::Span;
/// Checks if the given type is `dyn Any`, or a trait object that has `Any` as a supertrait.
/// Only in those cases will its vtable have a `type_id` method that returns the implementor's
@@ -1,10 +1,10 @@
use super::UNBUFFERED_BYTES;
use clippy_utils::diagnostics::span_lint_and_help;
use clippy_utils::res::{MaybeDef, MaybeTypeckRes};
use clippy_utils::sym;
use clippy_utils::ty::implements_trait;
use rustc_hir as hir;
use rustc_lint::LateContext;
use rustc_span::sym;
pub(super) fn check(cx: &LateContext<'_>, expr: &hir::Expr<'_>, recv: &hir::Expr<'_>) {
// Lint if the `.bytes()` call is from the `Read` trait and the implementor is not buffered.
@@ -1,12 +1,13 @@
use clippy_utils::diagnostics::{span_lint_and_sugg, span_lint_and_then};
use clippy_utils::res::MaybeDef;
use clippy_utils::source::SpanRangeExt;
use clippy_utils::sym;
use rustc_errors::Applicability;
use rustc_hir::{Expr, ExprKind};
use rustc_lint::LateContext;
use rustc_middle::ty::Ty;
use rustc_span::{Span, sym};
use rustc_span::Span;
use super::UNNECESSARY_GET_THEN_CHECK;
@@ -1,8 +1,8 @@
use clippy_utils::diagnostics::span_lint_and_then;
use clippy_utils::res::{MaybeDef, MaybeTypeckRes};
use clippy_utils::sym;
use rustc_hir::{Expr, ExprKind, QPath};
use rustc_lint::LateContext;
use rustc_span::sym;
use super::VERBOSE_FILE_READS;
@@ -1,10 +1,10 @@
use clippy_utils::diagnostics::span_lint_and_sugg;
use clippy_utils::res::{MaybeDef, MaybeTypeckRes};
use clippy_utils::source::snippet_with_applicability;
use clippy_utils::sym;
use rustc_errors::Applicability;
use rustc_hir::{Expr, ExprKind};
use rustc_lint::LateContext;
use rustc_span::sym;
use super::WAKER_CLONE_WAKE;
@@ -4,12 +4,11 @@
use clippy_utils::msrvs::{self, Msrv};
use clippy_utils::qualify_min_const_fn::is_min_const_fn;
use clippy_utils::source::snippet;
use clippy_utils::{fn_has_unsatisfiable_preds, peel_blocks};
use clippy_utils::{fn_has_unsatisfiable_preds, peel_blocks, sym};
use rustc_errors::Applicability;
use rustc_hir::{Expr, ExprKind, intravisit};
use rustc_lint::{LateContext, LateLintPass};
use rustc_session::impl_lint_pass;
use rustc_span::sym::{self, thread_local_macro};
declare_clippy_lint! {
/// ### What it does
@@ -63,7 +62,7 @@ fn is_thread_local_initializer(
) -> Option<bool> {
let macro_def_id = span.source_callee()?.macro_def_id?;
Some(
cx.tcx.is_diagnostic_item(thread_local_macro, macro_def_id)
cx.tcx.is_diagnostic_item(sym::thread_local_macro, macro_def_id)
&& matches!(fn_kind, intravisit::FnKind::ItemFn(..)),
)
}
+1 -2
View File
@@ -1,6 +1,6 @@
use clippy_config::Conf;
use clippy_utils::diagnostics::span_lint_and_then;
use clippy_utils::trait_ref_of_method;
use clippy_utils::{sym, trait_ref_of_method};
use clippy_utils::ty::InteriorMut;
use rustc_hir as hir;
use rustc_lint::{LateContext, LateLintPass};
@@ -9,7 +9,6 @@
use rustc_session::impl_lint_pass;
use rustc_span::Span;
use rustc_span::def_id::LocalDefId;
use rustc_span::symbol::sym;
use std::iter;
declare_clippy_lint! {
@@ -4,7 +4,7 @@
use clippy_utils::msrvs::{self, Msrv};
use clippy_utils::source::snippet_with_context;
use clippy_utils::ty::{implements_trait, is_copy};
use clippy_utils::{DefinedTy, ExprUseNode, expr_use_ctxt, peel_n_hir_expr_refs};
use clippy_utils::{DefinedTy, ExprUseNode, expr_use_ctxt, peel_n_hir_expr_refs, sym};
use rustc_errors::Applicability;
use rustc_hir::def::{DefKind, Res};
use rustc_hir::def_id::{DefId, LocalDefId};
@@ -17,7 +17,6 @@
self, ClauseKind, EarlyBinder, FnSig, GenericArg, GenericArgKind, ParamTy, ProjectionPredicate, Ty,
};
use rustc_session::impl_lint_pass;
use rustc_span::symbol::sym;
use rustc_trait_selection::traits::query::evaluate_obligation::InferCtxtExt as _;
use rustc_trait_selection::traits::{Obligation, ObligationCause};
use std::collections::VecDeque;
@@ -20,7 +20,7 @@
use clippy_config::Conf;
use clippy_utils::consts::{ConstEvalCtxt, Constant, const_item_rhs_to_expr};
use clippy_utils::diagnostics::{span_lint, span_lint_and_then};
use clippy_utils::is_in_const_context;
use clippy_utils::{is_in_const_context, sym};
use clippy_utils::macros::macro_backtrace;
use clippy_utils::paths::{PathNS, lookup_path_str};
use clippy_utils::ty::{get_field_idx_by_name, implements_trait};
@@ -39,7 +39,7 @@
TypeckResults, TypingEnv,
};
use rustc_session::impl_lint_pass;
use rustc_span::{DUMMY_SP, sym};
use rustc_span::DUMMY_SP;
use std::collections::hash_map::Entry;
declare_clippy_lint! {
@@ -1,12 +1,12 @@
use clippy_utils::diagnostics::span_lint_and_then;
use clippy_utils::res::MaybeQPath;
use clippy_utils::source::snippet_with_context;
use clippy_utils::sym;
use clippy_utils::ty::{implements_trait, is_copy};
use rustc_errors::Applicability;
use rustc_hir::{BinOpKind, Expr, ExprKind, UnOp};
use rustc_lint::LateContext;
use rustc_middle::ty::Ty;
use rustc_span::symbol::sym;
use super::CMP_OWNED;
@@ -1,5 +1,5 @@
use clippy_utils::diagnostics::span_lint_and_then;
use clippy_utils::sugg;
use clippy_utils::{sugg, sym};
use rustc_ast::util::parser::AssocOp;
use rustc_errors::Applicability;
use rustc_hir::def::{DefKind, Res};
@@ -7,7 +7,6 @@
use rustc_lint::LateContext;
use rustc_middle::ty;
use rustc_span::source_map::Spanned;
use rustc_span::sym;
use super::FLOAT_EQUALITY_WITHOUT_ABS;
@@ -1,12 +1,11 @@
use clippy_config::Conf;
use clippy_utils::diagnostics::span_lint;
use clippy_utils::macros::{is_panic, root_macro_call_first_node};
use clippy_utils::{is_in_test, is_inside_always_const_context};
use clippy_utils::{is_in_test, is_inside_always_const_context, sym};
use rustc_hir::def::{DefKind, Res};
use rustc_hir::{Expr, ExprKind, QPath};
use rustc_lint::{LateContext, LateLintPass};
use rustc_session::impl_lint_pass;
use rustc_span::sym;
pub struct PanicUnimplemented {
allow_panic_in_tests: bool,
+2 -2
View File
@@ -6,7 +6,7 @@
use clippy_utils::source::{SpanRangeExt, snippet, snippet_with_applicability};
use clippy_utils::sugg::Sugg;
use clippy_utils::ty::implements_trait;
use clippy_utils::{expr_use_ctxt, fn_def_id, get_parent_expr, higher, is_in_const_context, is_integer_const};
use clippy_utils::{expr_use_ctxt, fn_def_id, get_parent_expr, higher, is_in_const_context, is_integer_const, sym};
use rustc_ast::Mutability;
use rustc_ast::ast::RangeLimits;
use rustc_errors::Applicability;
@@ -15,7 +15,7 @@
use rustc_middle::ty::{self, ClauseKind, GenericArgKind, PredicatePolarity, Ty};
use rustc_session::impl_lint_pass;
use rustc_span::source_map::Spanned;
use rustc_span::{DesugaringKind, Span, sym};
use rustc_span::{DesugaringKind, Span};
use std::cmp::Ordering;
declare_clippy_lint! {
@@ -1,5 +1,5 @@
use clippy_utils::diagnostics::{span_lint_hir, span_lint_hir_and_then};
use clippy_utils::fn_has_unsatisfiable_preds;
use clippy_utils::{fn_has_unsatisfiable_preds, sym};
use clippy_utils::mir::{LocalUsage, PossibleBorrowerMap, visit_local_usage};
use clippy_utils::res::MaybeDef;
use clippy_utils::source::SpanRangeExt;
@@ -12,7 +12,7 @@
use rustc_middle::ty::{self, Ty};
use rustc_session::declare_lint_pass;
use rustc_span::def_id::LocalDefId;
use rustc_span::{BytePos, Span, sym};
use rustc_span::{BytePos, Span};
macro_rules! unwrap_or_continue {
($x:expr) => {
@@ -5,12 +5,12 @@
use clippy_utils::macros::matching_root_macro_call;
use clippy_utils::msrvs::{self, Msrv};
use clippy_utils::source::snippet;
use clippy_utils::{expr_or_init, fn_def_id, std_or_core};
use clippy_utils::{expr_or_init, fn_def_id, std_or_core, sym};
use rustc_errors::Applicability;
use rustc_hir::{Expr, ExprKind};
use rustc_lint::{LateContext, LateLintPass};
use rustc_session::impl_lint_pass;
use rustc_span::{Span, sym};
use rustc_span::Span;
pub struct RepeatVecWithCapacity {
msrv: Msrv,
@@ -1,10 +1,10 @@
use clippy_utils::diagnostics::span_lint_and_help;
use clippy_utils::res::{MaybeDef, MaybeResPath};
use clippy_utils::sym;
use clippy_utils::ty::peel_and_count_ty_refs;
use rustc_hir::{Expr, ExprKind};
use rustc_lint::{LateContext, LateLintPass};
use rustc_session::declare_lint_pass;
use rustc_span::sym;
declare_clippy_lint! {
/// ### What it does
+2 -2
View File
@@ -3,7 +3,7 @@
use clippy_utils::source::{snippet_indent, snippet_with_context};
use clippy_utils::sugg::Sugg;
use clippy_utils::{can_mut_borrow_both, eq_expr_value, is_in_const_context, std_or_core};
use clippy_utils::{can_mut_borrow_both, eq_expr_value, is_in_const_context, std_or_core, sym};
use itertools::Itertools;
use rustc_data_structures::fx::FxIndexSet;
@@ -16,7 +16,7 @@
use rustc_session::declare_lint_pass;
use rustc_span::source_map::Spanned;
use rustc_span::symbol::Ident;
use rustc_span::{Span, SyntaxContext, sym};
use rustc_span::{Span, SyntaxContext};
declare_clippy_lint! {
/// ### What it does
@@ -3,12 +3,12 @@
use clippy_utils::msrvs::{self, Msrv};
use clippy_utils::res::{MaybeDef, MaybeTypeckRes};
use clippy_utils::sugg::Sugg;
use clippy_utils::sym;
use rustc_errors::Applicability;
use rustc_hir::{BinOpKind, Expr, ExprKind};
use rustc_lint::{LateContext, LateLintPass};
use rustc_middle::ty::Ty;
use rustc_session::impl_lint_pass;
use rustc_span::sym;
declare_clippy_lint! {
/// ### What it does
@@ -1,8 +1,8 @@
use clippy_utils::diagnostics::span_lint_and_help;
use clippy_utils::sym;
use rustc_hir::{Impl, Item, ItemKind};
use rustc_lint::{LateContext, LateLintPass};
use rustc_session::declare_lint_pass;
use rustc_span::sym;
declare_clippy_lint! {
/// ### What it does
@@ -1,11 +1,10 @@
use clippy_utils::consts::{ConstEvalCtxt, Constant};
use clippy_utils::diagnostics::span_lint;
use clippy_utils::is_integer_const;
use clippy_utils::{is_integer_const, sym};
use clippy_utils::res::{MaybeDef, MaybeResPath};
use rustc_hir::{ConstBlock, Expr, ExprKind};
use rustc_lint::LateContext;
use rustc_middle::ty::Ty;
use rustc_span::symbol::sym;
use super::TRANSMUTING_NULL;
@@ -1,10 +1,10 @@
use super::UNSOUND_COLLECTION_TRANSMUTE;
use super::utils::is_layout_incompatible;
use clippy_utils::diagnostics::span_lint;
use clippy_utils::sym;
use rustc_hir::Expr;
use rustc_lint::LateContext;
use rustc_middle::ty::{self, Ty};
use rustc_span::symbol::sym;
/// Checks for `unsound_collection_transmute` lint.
/// Returns `true` if it's triggered, otherwise returns `false`.
@@ -1,11 +1,11 @@
use clippy_utils::diagnostics::span_lint_and_sugg;
use clippy_utils::source::snippet;
use clippy_utils::sym;
use rustc_errors::Applicability;
use rustc_hir::{
self as hir, GenericArg, GenericBounds, GenericParamKind, HirId, Lifetime, MutTy, Mutability, Node, QPath, TyKind,
};
use rustc_lint::LateContext;
use rustc_span::sym;
use super::BORROWED_BOX;
@@ -1,10 +1,10 @@
use clippy_utils::diagnostics::span_lint_and_help;
use clippy_utils::qpath_generic_tys;
use clippy_utils::{qpath_generic_tys, sym};
use clippy_utils::res::MaybeResPath;
use rustc_hir::def_id::DefId;
use rustc_hir::{self as hir, QPath};
use rustc_lint::LateContext;
use rustc_span::{Symbol, sym};
use rustc_span::Symbol;
use super::BOX_COLLECTION;
@@ -1,8 +1,8 @@
use clippy_utils::diagnostics::span_lint_and_help;
use clippy_utils::sym;
use rustc_hir::def_id::DefId;
use rustc_hir::{self as hir};
use rustc_lint::LateContext;
use rustc_span::symbol::sym;
use super::LINKEDLIST;
@@ -1,11 +1,12 @@
use clippy_utils::diagnostics::span_lint_and_sugg;
use clippy_utils::res::{MaybeDef, MaybeResPath};
use clippy_utils::source::snippet_opt;
use clippy_utils::sym;
use rustc_errors::Applicability;
use rustc_hir::def_id::DefId;
use rustc_hir::{self as hir};
use rustc_lint::LateContext;
use rustc_span::{Span, sym};
use rustc_span::Span;
pub(super) fn check(cx: &LateContext<'_>, qpath: &hir::QPath<'_>, def_id: DefId) -> bool {
if cx.tcx.is_diagnostic_item(sym::Cow, def_id)
@@ -1,12 +1,11 @@
use clippy_utils::diagnostics::span_lint_and_then;
use clippy_utils::qpath_generic_tys;
use clippy_utils::{qpath_generic_tys, sym};
use clippy_utils::res::MaybeResPath;
use clippy_utils::source::snippet_with_applicability;
use rustc_errors::Applicability;
use rustc_hir::def_id::DefId;
use rustc_hir::{QPath, Ty, TyKind};
use rustc_lint::LateContext;
use rustc_span::symbol::sym;
use std::borrow::Cow;
use super::RC_BUFFER;
@@ -1,6 +1,6 @@
use clippy_utils::diagnostics::span_lint_and_then;
use clippy_utils::res::MaybeQPath;
use clippy_utils::{expr_or_init, fn_def_id_with_node_args};
use clippy_utils::{expr_or_init, fn_def_id_with_node_args, sym};
use rustc_ast::BinOpKind;
use rustc_data_structures::fx::FxHashMap;
use rustc_hir as hir;
@@ -14,7 +14,7 @@
use rustc_middle::ty::{self, Ty, TyCtxt};
use rustc_session::impl_lint_pass;
use rustc_span::symbol::{Ident, kw};
use rustc_span::{Span, sym};
use rustc_span::Span;
use rustc_trait_selection::error_reporting::traits::suggestions::ReturnsVisitor;
use std::ops::ControlFlow;
@@ -1,12 +1,12 @@
use clippy_utils::diagnostics::span_lint_and_sugg;
use clippy_utils::res::MaybeDef;
use clippy_utils::sym;
use rustc_ast::ast::LitKind;
use rustc_errors::Applicability;
use rustc_hir::{BorrowKind, Expr, ExprKind, LangItem, Mutability};
use rustc_lint::{LateContext, LateLintPass};
use rustc_middle::ty;
use rustc_session::declare_lint_pass;
use rustc_span::symbol::sym;
declare_clippy_lint! {
/// ### What it does
@@ -1,7 +1,7 @@
use ControlFlow::{Break, Continue};
use clippy_utils::diagnostics::span_lint_and_then;
use clippy_utils::res::{MaybeDef, MaybeResPath};
use clippy_utils::{fn_def_id, get_enclosing_block};
use clippy_utils::{fn_def_id, get_enclosing_block, sym};
use rustc_ast::Mutability;
use rustc_ast::visit::visit_opt;
use rustc_errors::Applicability;
@@ -11,7 +11,7 @@
use rustc_lint::{LateContext, LateLintPass};
use rustc_middle::hir::nested_filter;
use rustc_session::declare_lint_pass;
use rustc_span::{Span, sym};
use rustc_span::Span;
use std::ops::ControlFlow;
declare_clippy_lint! {
@@ -1,7 +1,7 @@
use crate::consts::ConstEvalCtxt;
use crate::macros::macro_backtrace;
use crate::source::{SpanRange, SpanRangeExt, walk_span_to_context};
use crate::tokenize_with_text;
use crate::{sym, tokenize_with_text};
use rustc_ast::ast;
use rustc_ast::ast::InlineAsmTemplatePiece;
use rustc_data_structures::fx::{FxHasher, FxIndexMap};
@@ -19,7 +19,7 @@
use rustc_lexer::{FrontmatterAllowed, TokenKind, tokenize};
use rustc_lint::LateContext;
use rustc_middle::ty::TypeckResults;
use rustc_span::{BytePos, ExpnKind, MacroKind, Symbol, SyntaxContext, sym};
use rustc_span::{BytePos, ExpnKind, MacroKind, Symbol, SyntaxContext};
use std::hash::{Hash, Hasher};
use std::ops::Range;
use std::slice;
+231
View File
@@ -34,25 +34,57 @@ macro_rules! generate {
//
// `cargo dev fmt` ensures that the content of the `generate!()` macro call stays sorted.
generate! {
Any,
Applicability,
ArrayIntoIter,
AsyncReadExt,
AsyncWriteExt,
BACKSLASH_SINGLE_QUOTE: r"\'",
BTreeEntry,
BTreeSet,
Binary,
BinaryHeap,
CLIPPY_ARGS,
CLIPPY_CONF_DIR,
CRLF: "\r\n",
Cargo_toml: "Cargo.toml",
Child,
Command,
Cow,
Current,
DOUBLE_QUOTE: "\"",
DebugStruct,
Deserialize,
DirBuilder,
DoubleEndedIterator,
Duration,
EarlyContext,
EarlyLintPass,
Enumerate,
Error,
File,
FileType,
FsOpenOptions,
FsPermissions,
HashMapEntry,
Instant,
IntoIter,
IoBufRead,
IoLines,
IoRead,
IoSeek,
IoWrite,
IpAddr,
Ipv4Addr,
Ipv6Addr,
IterEmpty,
IterOnce,
IterPeekable,
Itertools,
LF: "\n",
LateContext,
Lazy,
LinkedList,
Lint,
LowerExp,
LowerHex,
@@ -62,20 +94,37 @@ macro_rules! generate {
MsrvStack,
Octal,
OpenOptions,
OsStr,
OsString,
Path,
PathBuf,
PathLookup,
RangeBounds,
Receiver,
RefCellRef,
RefCellRefMut,
Regex,
RegexBuilder,
RegexSet,
Saturating,
SeekFrom,
SliceIter,
Start,
Stdin,
Symbol,
SyntaxContext,
TBD,
ToOwned,
ToString,
UpperExp,
UpperHex,
V4,
V6,
VecDeque,
Visitor,
Waker,
Weak,
Wrapping,
abs,
ambiguous_glob_reexports,
app,
@@ -87,11 +136,18 @@ macro_rules! generate {
as_deref_mut,
as_mut,
as_path,
as_ptr,
as_str,
assert_failed,
author,
binaryheap_iter,
bool_then,
borrow,
borrow_mut,
box_assume_init_into_vec_unsafe,
btreemap_contains_key,
btreemap_insert,
btreeset_iter,
build_hasher,
by_ref,
bytes,
@@ -103,6 +159,8 @@ macro_rules! generate {
ceil,
ceil_char_boundary,
chain,
char_is_ascii,
char_to_digit,
chars,
check_attributes,
checked_abs,
@@ -112,30 +170,40 @@ macro_rules! generate {
checked_pow,
checked_rem_euclid,
checked_sub,
child_id,
child_kill,
clamp,
clippy_utils,
clone_into,
cloned,
cmp_max,
cmp_min,
cognitive_complexity,
collapsible_else_if,
collapsible_if,
collect,
const_ptr,
contains,
convert_identity,
copied,
copy_from,
copy_from_nonoverlapping,
copy_to,
copy_to_nonoverlapping,
core_arch,
core_panic_2021_macro,
count_ones,
create,
create_new,
cstring_as_c_str,
cx,
cycle,
cyclomatic_complexity,
dbg_macro,
de,
debug_struct,
deprecated_in_future,
deref_mut_method,
diagnostics,
disallowed_types,
drain,
@@ -144,12 +212,53 @@ macro_rules! generate {
ends_with,
enum_glob_use,
enumerate,
enumerate_method,
eprint_macro,
eprintln_macro,
err,
exp,
expect_err,
expn_data,
exported_private_dependencies,
extend,
f128_consts_mod,
f128_epsilon,
f16_consts_mod,
f16_epsilon,
f32_consts_mod,
f32_epsilon,
f32_legacy_const_digits,
f32_legacy_const_epsilon,
f32_legacy_const_infinity,
f32_legacy_const_mantissa_dig,
f32_legacy_const_max,
f32_legacy_const_max_10_exp,
f32_legacy_const_max_exp,
f32_legacy_const_min,
f32_legacy_const_min_10_exp,
f32_legacy_const_min_exp,
f32_legacy_const_min_positive,
f32_legacy_const_nan,
f32_legacy_const_neg_infinity,
f32_legacy_const_radix,
f64_consts_mod,
f64_epsilon,
f64_legacy_const_digits,
f64_legacy_const_epsilon,
f64_legacy_const_infinity,
f64_legacy_const_mantissa_dig,
f64_legacy_const_max,
f64_legacy_const_max_10_exp,
f64_legacy_const_max_exp,
f64_legacy_const_min,
f64_legacy_const_min_10_exp,
f64_legacy_const_min_exp,
f64_legacy_const_min_positive,
f64_legacy_const_nan,
f64_legacy_const_neg_infinity,
f64_legacy_const_radix,
field,
file_options,
filter,
filter_map,
find,
@@ -163,11 +272,14 @@ macro_rules! generate {
floor_char_boundary,
fold,
for_each,
format_args_macro,
from_be_bytes,
from_bytes_with_nul,
from_bytes_with_nul_unchecked,
from_days,
from_fn,
from_hours,
from_iter_fn,
from_le_bytes,
from_micros,
from_millis,
@@ -178,9 +290,11 @@ macro_rules! generate {
from_raw,
from_raw_parts,
from_secs,
from_str_method,
from_str_radix,
from_weeks,
fs,
fs_create_dir,
fuse,
futures_util,
get,
@@ -190,19 +304,64 @@ macro_rules! generate {
get_unchecked,
get_unchecked_mut,
has_significant_drop,
hashmap_contains_key,
hashmap_drain_ty,
hashmap_insert,
hashmap_iter_mut_ty,
hashmap_iter_ty,
hashmap_keys_ty,
hashmap_values_mut_ty,
hashmap_values_ty,
hashset_drain_ty,
hashset_iter,
hashset_iter_ty,
help,
hidden_glob_reexports,
hygiene,
i128_legacy_const_max,
i128_legacy_const_min,
i128_legacy_fn_max_value,
i128_legacy_fn_min_value,
i128_legacy_mod,
i16_legacy_const_max,
i16_legacy_const_min,
i16_legacy_fn_max_value,
i16_legacy_fn_min_value,
i16_legacy_mod,
i32_legacy_const_max,
i32_legacy_const_min,
i32_legacy_fn_max_value,
i32_legacy_fn_min_value,
i32_legacy_mod,
i64_legacy_const_max,
i64_legacy_const_min,
i64_legacy_fn_max_value,
i64_legacy_fn_min_value,
i64_legacy_mod,
i8_legacy_const_max,
i8_legacy_const_min,
i8_legacy_fn_max_value,
i8_legacy_fn_min_value,
i8_legacy_mod,
ilog,
include_bytes_macro,
include_str_macro,
insert,
insert_str,
inspect,
instant_now,
int_roundings,
into,
into_bytes,
into_ok,
into_owned,
intrinsics_unaligned_volatile_load,
intrinsics_unaligned_volatile_store,
io,
io_error_new,
io_errorkind,
io_stderr,
io_stdout,
is_ascii,
is_char_boundary,
is_diag_item,
@@ -218,7 +377,16 @@ macro_rules! generate {
is_some,
is_some_and,
is_sorted_by_key,
isize_legacy_const_max,
isize_legacy_const_min,
isize_legacy_fn_max_value,
isize_legacy_fn_min_value,
isize_legacy_mod,
isqrt,
iter_cloned,
iter_copied,
iter_filter,
iter_repeat,
itertools,
join,
kw,
@@ -231,6 +399,7 @@ macro_rules! generate {
log,
log10,
log2,
macro_concat,
macro_use_imports,
map_break,
map_continue,
@@ -239,11 +408,16 @@ macro_rules! generate {
map_while,
match_indices,
matches,
matches_macro,
max,
max_by,
max_by_key,
max_value,
maximum,
mem_align_of,
mem_replace,
mem_size_of,
mem_size_of_val,
min,
min_by,
min_by_key,
@@ -266,26 +440,48 @@ macro_rules! generate {
ok_or,
once_cell,
open,
open_options_new,
option_expect,
option_unwrap,
or_default,
or_else,
or_insert,
or_insert_with,
os_str_to_os_string,
os_string_as_os_str,
outer_expn,
panic_any,
panic_str,
parse,
partition,
path_main_separator,
path_to_pathbuf,
pathbuf_as_path,
paths,
peek,
peek_mut,
peekable,
permissions_from_mode,
pin_macro,
position,
pow,
powf,
powi,
print_macro,
println_macro,
process_abort,
process_exit,
product,
ptr_read_volatile,
ptr_slice_from_raw_parts,
ptr_slice_from_raw_parts_mut,
ptr_without_provenance,
ptr_without_provenance_mut,
push,
push_back,
push_front,
push_str,
range_step,
read,
read_exact,
read_line,
@@ -305,6 +501,7 @@ macro_rules! generate {
reserve,
resize,
restriction,
result_ok_method,
rev,
rfind,
rmatch_indices,
@@ -324,6 +521,7 @@ macro_rules! generate {
rustfmt_skip,
rwlock,
saturating_abs,
saturating_div,
saturating_pow,
scan,
seek,
@@ -333,7 +531,11 @@ macro_rules! generate {
set_readonly,
signum,
single_component_path_imports,
skip,
skip_while,
slice_from_ref,
slice_into_vec,
slice_iter,
slice_mut_unchecked,
slice_unchecked,
sort,
@@ -358,6 +560,20 @@ macro_rules! generate {
starts_with,
std_detect,
step_by,
str_chars,
str_ends_with,
str_len,
str_split_whitespace,
str_starts_with,
str_trim,
str_trim_end,
str_trim_start,
string_as_mut_str,
string_as_str,
string_from_utf8,
string_insert_str,
string_new,
string_push_str,
strlen,
style,
subsec_micros,
@@ -369,6 +585,7 @@ macro_rules! generate {
tcx,
then,
then_some,
thread_local_macro,
to_ascii_lowercase,
to_ascii_uppercase,
to_be_bytes,
@@ -378,8 +595,11 @@ macro_rules! generate {
to_ne_bytes,
to_os_string,
to_owned,
to_owned_method,
to_path_buf,
to_string_method,
to_uppercase,
todo_macro,
tokio,
trim,
trim_end,
@@ -389,6 +609,8 @@ macro_rules! generate {
truncate,
try_fold,
try_for_each,
try_from_fn,
unimplemented_macro,
unreachable_pub,
unsafe_removed_from_name,
unused,
@@ -403,6 +625,15 @@ macro_rules! generate {
unwrap_unchecked,
unzip,
utils,
vec_as_mut_slice,
vec_as_slice,
vec_from_elem,
vec_is_empty,
vec_macro,
vec_new,
vec_pop,
vec_with_capacity,
vecdeque_iter,
visit_str,
visit_string,
wake,
+2 -1
View File
@@ -25,7 +25,7 @@
TypeVisitableExt, TypeVisitor, UintTy, Upcast, VariantDef, VariantDiscr,
};
use rustc_span::symbol::Ident;
use rustc_span::{DUMMY_SP, Span, Symbol, sym};
use rustc_span::{DUMMY_SP, Span, Symbol};
use rustc_trait_selection::traits::query::evaluate_obligation::InferCtxtExt as _;
use rustc_trait_selection::traits::query::normalize::QueryNormalizeExt;
use rustc_trait_selection::traits::{Obligation, ObligationCause};
@@ -38,6 +38,7 @@
use crate::paths::{PathNS, lookup_path_str};
use crate::res::{MaybeDef, MaybeQPath};
use crate::sym;
mod type_certainty;
pub use type_certainty::expr_type_is_certain;
+1 -2
View File
@@ -1,7 +1,7 @@
use crate::macros::root_macro_call_first_node;
use crate::res::MaybeResPath;
use crate::visitors::{Descend, Visitable, for_each_expr, for_each_expr_without_closures};
use crate::{self as utils, get_enclosing_loop_or_multi_call_closure};
use crate::{self as utils, get_enclosing_loop_or_multi_call_closure, sym};
use core::ops::ControlFlow;
use hir::def::Res;
use rustc_hir::intravisit::{self, Visitor};
@@ -11,7 +11,6 @@
use rustc_middle::hir::nested_filter;
use rustc_middle::mir::FakeReadCause;
use rustc_middle::ty;
use rustc_span::sym;
/// Returns a set of mutated local variable IDs, or `None` if mutations could not be determined.
pub fn mutated_variables<'tcx>(expr: &'tcx Expr<'_>, cx: &LateContext<'tcx>) -> Option<HirIdSet> {