rust/clippy_lints/src/methods
llogiq 8f1b4bb87a
New lint: unnecessary_semicolon (#14032)
This lint detects and removes the unnecessary semicolon after a `match`
or `if` statement returning `()`. It seems to be quite a common
"mistake", given the number of hits (88) we had in the Clippy sources
themselves.

The lint doesn't bother about loops, as `rustfmt` already removes the
extra semicolon. It doesn't handle blocks either, as an extra block
level, followed or not by a semicolon, is likely intentional.

I propose to put the lint in `pedantic`, as putting it in `style` seems
quite hazardous given the number of hits.

Note: there exists a `redundant-semicolon` lint in the compiler, but it
is an early lint and cannot check that the expression evaluates to `()`,
so it ignores the cases we're handling here.

----

changelog: [`unnecessary_semicolon`]: new lint
2025-01-20 17:39:37 +00:00
..
bind_instead_of_map.rs Merge commit '7901289135' into clippy-subtree-update 2024-09-24 11:58:04 +02:00
bytecount.rs Apply unnecessary_semicolon to Clippy sources 2025-01-19 15:34:07 +01:00
bytes_count_to_len.rs Apply unnecessary_semicolon to Clippy sources 2025-01-19 15:34:07 +01:00
bytes_nth.rs Apply unnecessary_semicolon to Clippy sources 2025-01-19 15:34:07 +01:00
case_sensitive_file_extension_comparisons.rs Merge commit '7901289135' into clippy-subtree-update 2024-09-24 11:58:04 +02:00
chars_cmp.rs Merge commit '9725c4a162' into clippy-subtree-update 2024-04-04 19:52:55 +02:00
chars_cmp_with_unwrap.rs Merge commit '9725c4a162' into clippy-subtree-update 2024-04-04 19:52:55 +02:00
chars_last_cmp.rs Merge commit 'f4850f7292' into clippyup 2022-11-21 20:51:52 +01:00
chars_last_cmp_with_unwrap.rs Merge commit 'f4850f7292' into clippyup 2022-11-21 20:51:52 +01:00
chars_next_cmp.rs Merge commit 'f4850f7292' into clippyup 2022-11-21 20:51:52 +01:00
chars_next_cmp_with_unwrap.rs Merge commit 'f4850f7292' into clippyup 2022-11-21 20:51:52 +01:00
clear_with_drain.rs Merge commit '7901289135' into clippy-subtree-update 2024-09-24 11:58:04 +02:00
clone_on_copy.rs Merge commit 'ff4a26d442' into clippy-subtree-update 2024-11-28 19:38:59 +01:00
clone_on_ref_ptr.rs Merge commit '7901289135' into clippy-subtree-update 2024-09-24 11:58:04 +02:00
cloned_instead_of_copied.rs Apply unnecessary_semicolon to Clippy sources 2025-01-19 15:34:07 +01:00
collapsible_str_replace.rs Merge commit '7901289135' into clippy-subtree-update 2024-09-24 11:58:04 +02:00
double_ended_iterator_last.rs Dogfood double_ended_iterator_last 2025-01-01 22:19:16 +01:00
drain_collect.rs Merge commit '7901289135' into clippy-subtree-update 2024-09-24 11:58:04 +02:00
err_expect.rs Apply unnecessary_semicolon to Clippy sources 2025-01-19 15:34:07 +01:00
expect_fun_call.rs Apply unnecessary_semicolon to Clippy sources 2025-01-19 15:34:07 +01:00
extend_with_drain.rs Merge commit 'edb720b199' into clippyup 2023-11-16 19:13:24 +01:00
filetype_is_file.rs Merge commit '7901289135' into clippy-subtree-update 2024-09-24 11:58:04 +02:00
filter_map.rs Merge commit 'f712eb5cdc' into clippy-subtree-update 2024-11-07 22:37:01 +01:00
filter_map_bool_then.rs Merge commit '7901289135' into clippy-subtree-update 2024-09-24 11:58:04 +02:00
filter_map_identity.rs Merge commit '609cd310be' into clippy-subtree-update 2024-12-26 15:15:54 +01:00
filter_map_next.rs Merge commit 'ff4a26d442' into clippy-subtree-update 2024-11-28 19:38:59 +01:00
filter_next.rs Merge commit '786fbd6d68' into clippy-subtree-update 2024-11-14 19:35:26 +01:00
flat_map_identity.rs Merge commit '7901289135' into clippy-subtree-update 2024-09-24 11:58:04 +02:00
flat_map_option.rs Merge commit '7901289135' into clippy-subtree-update 2024-09-24 11:58:04 +02:00
format_collect.rs Merge commit '09ac14c901' into clippyup 2023-11-02 17:35:56 +01:00
from_iter_instead_of_collect.rs Merge commit '0f8eabd623' into clippyup 2024-08-24 18:33:44 -04:00
get_first.rs Merge commit '9725c4a162' into clippy-subtree-update 2024-04-04 19:52:55 +02:00
get_last_with_len.rs Merge commit '7901289135' into clippy-subtree-update 2024-09-24 11:58:04 +02:00
get_unwrap.rs Merge commit '0f8eabd623' into clippyup 2024-08-24 18:33:44 -04:00
implicit_clone.rs Merge commit 'cb806113e0' into clippy-subtree-update 2024-08-08 19:13:50 +02:00
inefficient_to_string.rs Merge commit '7901289135' into clippy-subtree-update 2024-09-24 11:58:04 +02:00
inspect_for_each.rs Merge commit '7901289135' into clippy-subtree-update 2024-09-24 11:58:04 +02:00
into_iter_on_ref.rs Merge commit '7901289135' into clippy-subtree-update 2024-09-24 11:58:04 +02:00
is_digit_ascii_radix.rs Merge commit 'ff4a26d442' into clippy-subtree-update 2024-11-28 19:38:59 +01:00
is_empty.rs Merge commit 'f712eb5cdc' into clippy-subtree-update 2024-11-07 22:37:01 +01:00
iter_cloned_collect.rs Merge commit '9725c4a162' into clippy-subtree-update 2024-04-04 19:52:55 +02:00
iter_count.rs Merge commit '9725c4a162' into clippy-subtree-update 2024-04-04 19:52:55 +02:00
iter_filter.rs Merge commit 'a109190d70' into clippy-subtree-update 2024-10-18 13:44:06 +02:00
iter_kv_map.rs Merge commit 'ff4a26d442' into clippy-subtree-update 2024-11-28 19:38:59 +01:00
iter_next_slice.rs Merge commit 'edb720b199' into clippyup 2023-11-16 19:13:24 +01:00
iter_nth.rs Merge commit '7901289135' into clippy-subtree-update 2024-09-24 11:58:04 +02:00
iter_nth_zero.rs Merge commit 'cb806113e0' into clippy-subtree-update 2024-08-08 19:13:50 +02:00
iter_on_single_or_empty_collections.rs Merge commit '7901289135' into clippy-subtree-update 2024-09-24 11:58:04 +02:00
iter_out_of_bounds.rs Merge commit 'f712eb5cdc' into clippy-subtree-update 2024-11-07 22:37:01 +01:00
iter_overeager_cloned.rs Merge commit '2efebd2f0c' into clippy-subtree-update 2024-05-21 10:39:30 -07:00
iter_skip_next.rs Rename BindingAnnotation to BindingMode 2024-04-17 09:34:39 -04:00
iter_skip_zero.rs Merge commit 'cb806113e0' into clippy-subtree-update 2024-08-08 19:13:50 +02:00
iter_with_drain.rs Apply unnecessary_semicolon to Clippy sources 2025-01-19 15:34:07 +01:00
iterator_step_by_zero.rs Merge commit 'cb806113e0' into clippy-subtree-update 2024-08-08 19:13:50 +02:00
join_absolute_paths.rs Merge commit '7901289135' into clippy-subtree-update 2024-09-24 11:58:04 +02:00
manual_c_str_literals.rs Merge commit 'ff4a26d442' into clippy-subtree-update 2024-11-28 19:38:59 +01:00
manual_inspect.rs remove Ty::is_copy_modulo_regions 2024-12-02 13:57:56 +01:00
manual_is_variant_and.rs Merge commit 'ff4a26d442' into clippy-subtree-update 2024-11-28 19:38:59 +01:00
manual_next_back.rs Merge commit '786fbd6d68' into clippy-subtree-update 2024-11-14 19:35:26 +01:00
manual_ok_or.rs Merge commit '7901289135' into clippy-subtree-update 2024-09-24 11:58:04 +02:00
manual_repeat_n.rs add manual_repeat_n lint 2025-01-15 13:15:35 +09:00
manual_saturating_arithmetic.rs Merge commit 'a109190d70' into clippy-subtree-update 2024-10-18 13:44:06 +02:00
manual_str_repeat.rs Merge commit '786fbd6d68' into clippy-subtree-update 2024-11-14 19:35:26 +01:00
manual_try_fold.rs Merge commit 'ff4a26d442' into clippy-subtree-update 2024-11-28 19:38:59 +01:00
map_all_any_identity.rs Merge commit 'f712eb5cdc' into clippy-subtree-update 2024-11-07 22:37:01 +01:00
map_clone.rs Merge commit 'ff4a26d442' into clippy-subtree-update 2024-11-28 19:38:59 +01:00
map_collect_result_unit.rs Merge commit 'edb720b199' into clippyup 2023-11-16 19:13:24 +01:00
map_err_ignore.rs Merge commit 'cb806113e0' into clippy-subtree-update 2024-08-08 19:13:50 +02:00
map_flatten.rs Don't emit machine applicable map_flatten lint if there are code comments 2025-01-06 17:35:55 +01:00
map_identity.rs Do not remove identity mapping if mandatory mutability would be lost 2024-12-29 23:01:14 +01:00
map_unwrap_or.rs Merge commit 'ff4a26d442' into clippy-subtree-update 2024-11-28 19:38:59 +01:00
map_with_unused_argument_over_ranges.rs Merge commit '609cd310be' into clippy-subtree-update 2024-12-26 15:15:54 +01:00
mod.rs Use clearer multipart suggestions for unnecessary_map_or lint (#13998) 2025-01-19 22:11:46 +00:00
mut_mutex_lock.rs Merge commit 'aa0d551351' into clippy-subtree-update 2024-10-03 16:32:51 +02:00
needless_as_bytes.rs Check for needless uses of str::bytes() 2025-01-09 18:44:43 +01:00
needless_character_iteration.rs Move more def paths into clippy_utils::paths 2024-12-29 20:39:43 +01:00
needless_collect.rs Make "all fields are shorthand" requirement configurable 2024-12-26 19:36:58 -05:00
needless_option_as_deref.rs Merge commit '7901289135' into clippy-subtree-update 2024-09-24 11:58:04 +02:00
needless_option_take.rs Merge commit '609cd310be' into clippy-subtree-update 2024-12-26 15:15:54 +01:00
no_effect_replace.rs Merge commit '7901289135' into clippy-subtree-update 2024-09-24 11:58:04 +02:00
obfuscated_if_else.rs Merge commit 'd9c24d1b1e' into clippyup 2023-07-17 10:22:32 +02:00
ok_expect.rs Merge commit 'edb720b199' into clippyup 2023-11-16 19:13:24 +01:00
open_options.rs Merge commit '7901289135' into clippy-subtree-update 2024-09-24 11:58:04 +02:00
option_as_ref_cloned.rs Merge commit '7901289135' into clippy-subtree-update 2024-09-24 11:58:04 +02:00
option_as_ref_deref.rs Merge commit 'ff4a26d442' into clippy-subtree-update 2024-11-28 19:38:59 +01:00
option_map_or_err_ok.rs Merge commit '66c29b973b' into clippy-subtree-update 2024-01-25 19:17:36 +01:00
option_map_or_none.rs Merge commit '66c29b973b' into clippy-subtree-update 2024-01-25 19:17:36 +01:00
option_map_unwrap_or.rs Merge commit 'ff4a26d442' into clippy-subtree-update 2024-11-28 19:38:59 +01:00
or_fun_call.rs Merge commit '786fbd6d68' into clippy-subtree-update 2024-11-14 19:35:26 +01:00
or_then_unwrap.rs Merge commit '7901289135' into clippy-subtree-update 2024-09-24 11:58:04 +02:00
path_buf_push_overwrite.rs Merge commit '3e5a02b13b' into clippy-subtree-update 2024-06-13 12:30:48 +02:00
path_ends_with_ext.rs Apply unnecessary_semicolon to Clippy sources 2025-01-19 15:34:07 +01:00
range_zip_with_len.rs Merge commit '7901289135' into clippy-subtree-update 2024-09-24 11:58:04 +02:00
read_line_without_trim.rs Move more def paths into clippy_utils::paths 2024-12-29 20:39:43 +01:00
readonly_write_lock.rs Merge commit 'a109190d70' into clippy-subtree-update 2024-10-18 13:44:06 +02:00
redundant_as_str.rs Merge commit '26ac6aab02' 2024-01-11 17:27:03 +01:00
repeat_once.rs Merge commit 'cb806113e0' into clippy-subtree-update 2024-08-08 19:13:50 +02:00
result_map_or_else_none.rs Merge commit '66c29b973b' into clippy-subtree-update 2024-01-25 19:17:36 +01:00
search_is_some.rs Merge commit '7901289135' into clippy-subtree-update 2024-09-24 11:58:04 +02:00
seek_from_current.rs Merge commit 'a109190d70' into clippy-subtree-update 2024-10-18 13:44:06 +02:00
seek_to_start_instead_of_rewind.rs Merge commit 'a109190d70' into clippy-subtree-update 2024-10-18 13:44:06 +02:00
single_char_add_str.rs [Clippy] Swap single_char_add_str/format_push_string to use diagnostic items instead of paths 2024-09-19 13:13:20 +01:00
single_char_insert_string.rs Merge commit 'a109190d70' into clippy-subtree-update 2024-10-18 13:44:06 +02:00
single_char_push_string.rs Merge commit 'a109190d70' into clippy-subtree-update 2024-10-18 13:44:06 +02:00
skip_while_next.rs Merge commit 'b40ea209e7' into clippyup 2021-04-08 17:50:13 +02:00
stable_sort_primitive.rs Merge commit '9725c4a162' into clippy-subtree-update 2024-04-04 19:52:55 +02:00
str_split.rs Merge commit '26ac6aab02' 2024-01-11 17:27:03 +01:00
str_splitn.rs Make "all fields are shorthand" requirement configurable 2024-12-26 19:36:58 -05:00
string_extend_chars.rs Merge commit 'd9c24d1b1e' into clippyup 2023-07-17 10:22:32 +02:00
string_lit_chars_any.rs Merge commit 'ff4a26d442' into clippy-subtree-update 2024-11-28 19:38:59 +01:00
suspicious_command_arg_space.rs Merge commit '7901289135' into clippy-subtree-update 2024-09-24 11:58:04 +02:00
suspicious_map.rs Merge commit 'edb720b199' into clippyup 2023-11-16 19:13:24 +01:00
suspicious_splitn.rs Merge commit '9725c4a162' into clippy-subtree-update 2024-04-04 19:52:55 +02:00
suspicious_to_owned.rs Merge commit '9725c4a162' into clippy-subtree-update 2024-04-04 19:52:55 +02:00
type_id_on_box.rs Merge commit '7901289135' into clippy-subtree-update 2024-09-24 11:58:04 +02:00
uninit_assumed_init.rs Merge commit 'a109190d70' into clippy-subtree-update 2024-10-18 13:44:06 +02:00
unit_hash.rs Merge commit 'f51aade56f' into clippyup 2022-08-31 09:24:45 -04:00
unnecessary_fallible_conversions.rs Merge commit '7901289135' into clippy-subtree-update 2024-09-24 11:58:04 +02:00
unnecessary_filter_map.rs Rename ty_def_id so people will stop using it by accident 2024-12-13 16:36:38 +00:00
unnecessary_first_then_check.rs Merge commit 'a109190d70' into clippy-subtree-update 2024-10-18 13:44:06 +02:00
unnecessary_fold.rs Make "all fields are shorthand" requirement configurable 2024-12-26 19:36:58 -05:00
unnecessary_get_then_check.rs Merge commit '7901289135' into clippy-subtree-update 2024-09-24 11:58:04 +02:00
unnecessary_iter_cloned.rs Apply unnecessary_semicolon to Clippy sources 2025-01-19 15:34:07 +01:00
unnecessary_join.rs Always use ty:: qualifier for TyKind enum variants. 2024-04-16 16:29:13 +10:00
unnecessary_lazy_eval.rs Merge commit '0f8eabd623' into clippyup 2024-08-24 18:33:44 -04:00
unnecessary_literal_unwrap.rs Merge commit '7901289135' into clippy-subtree-update 2024-09-24 11:58:04 +02:00
unnecessary_map_or.rs Use clearer multipart suggestions for unnecessary_map_or lint 2025-01-19 10:06:21 +01:00
unnecessary_min_or_max.rs use TypingEnv when no infcx is available 2024-11-18 10:38:56 +01:00
unnecessary_result_map_or_else.rs Merge commit '7901289135' into clippy-subtree-update 2024-09-24 11:58:04 +02:00
unnecessary_sort_by.rs Merge commit '609cd310be' into clippy-subtree-update 2024-12-26 15:15:54 +01:00
unnecessary_to_owned.rs don't suggest to use cloned for Cow in unnecessary_to_owned (#13853) 2025-01-12 21:27:10 +00:00
unused_enumerate_index.rs Merge commit '7901289135' into clippy-subtree-update 2024-09-24 11:58:04 +02:00
unwrap_expect_used.rs Merge commit 'b794b8e08c' into clippy-subtree-update 2024-07-11 15:44:03 +02:00
useless_asref.rs Merge commit '786fbd6d68' into clippy-subtree-update 2024-11-14 19:35:26 +01:00
useless_nonzero_new_unchecked.rs New lint useless-nonzero-new_unchecked 2025-01-13 23:38:29 +01:00
utils.rs Fix tests 2024-10-19 18:07:35 +00:00
vec_resize_to_zero.rs Merge commit '7901289135' into clippy-subtree-update 2024-09-24 11:58:04 +02:00
verbose_file_reads.rs Merge commit 'cb806113e0' into clippy-subtree-update 2024-08-08 19:13:50 +02:00
waker_clone_wake.rs Merge commit '7901289135' into clippy-subtree-update 2024-09-24 11:58:04 +02:00
wrong_self_convention.rs Merge commit 'cb806113e0' into clippy-subtree-update 2024-08-08 19:13:50 +02:00
zst_offset.rs use TypingEnv when no infcx is available 2024-11-18 10:38:56 +01:00