rust/clippy_lints/src
bors[bot] 73458aebe3 Merge #3368
3368: added downsides to "known problems" for get_unwrap lint r=flip1995 a=humean

As a beginner I found this lint to be confusing because I was not sure how the `Option` type disappeared as conceptually I know that my `.get()` and Index could fail. Initially I thought maybe the compiler or clippy was smart enough to understand that it was impossible for my `.get()` to fail in this particular case, but it was explained to me that using the Index syntax is just shorthand for directly unwrapping the value:

https://doc.rust-lang.org/src/std/collections/hash/map.rs.html#1547

For beginners or users trying to iterate quickly it seems common to litter your code with `unwrap` or `except` as placeholders for where some explicit error handling might need to take place. I think it should be warned that using Index is merely more concise, but doesn't at all reduce the risk of panics and might in fact cause you to miss handling them in a future refactor.

Co-authored-by: Michael Rutter <michael.john.rutter@gmail.com>
Co-authored-by: Michael Rutter <humean@users.noreply.github.com>
2018-10-31 10:21:51 +00:00
..
methods Merge #3368 2018-10-31 10:21:51 +00:00
utils Merge #3378 2018-10-31 07:18:42 +00:00
approx_const.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
arithmetic.rs Disable arithmetic lints in constant items 2018-10-24 20:27:26 -07:00
assign_ops.rs Limit commutative assign op lint to primitive types 2018-10-10 19:10:44 +02:00
attrs.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
bit_mask.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
blacklisted_name.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
block_in_if_condition.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
booleans.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
bytecount.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
collapsible_if.rs Support multiline comments and hopefully fix panic 2018-10-18 18:57:16 +02:00
const_static_lifetime.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
consts.rs Fix cast_possible_wrap and cast_sign_loss warnings 2018-10-08 22:34:10 -07:00
copies.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
copy_iterator.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
cyclomatic_complexity.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
default_trait_access.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
deprecated_lints.rs Rename if_let_redundant_pattern_matching to redundant_pattern_matching 2018-10-17 11:20:42 +08:00
derive.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
doc.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
double_comparison.rs Fix some more stutter warnings 2018-10-12 17:07:48 -07:00
double_parens.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
drop_forget_ref.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
duration_subsec.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
else_if_without_else.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
empty_enum.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
entry.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
enum_clike.rs Fix similar_names warnings 2018-10-11 15:18:58 -07:00
enum_glob_use.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
enum_variants.rs Fix stutter lints 2018-10-11 15:42:22 -07:00
eq_op.rs Fix similar_names warnings 2018-10-11 15:18:58 -07:00
erasing_op.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
escape.rs Avoid linting boxed_local on trait implementations. 2018-10-15 20:34:45 +02:00
eta_reduction.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
eval_order_dependence.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
excessive_precision.rs Fix doc_markdown lints 2018-10-11 15:43:13 -07:00
explicit_write.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
fallible_impl_from.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
format.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
formatting.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
functions.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
identity_conversion.rs Don't expand macro in identity_conversion suggestion 2018-10-27 15:47:56 +02:00
identity_op.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
if_not_else.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
indexing_slicing.rs out_of_bounds_indexing improved reporting of out of bounds value 2018-10-15 04:44:39 -07:00
infallible_destructuring_match.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
infinite_iter.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
inherent_impl.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
inline_fn_without_body.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
int_plus_one.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
invalid_ref.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
items_after_statements.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
large_enum_variant.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
len_zero.rs Fix issue #3322: reword help message for len_zero 2018-10-16 23:23:31 +02:00
let_if_seq.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
lib.rs Fix lint_without_lint_pass 2018-10-29 20:28:06 +01:00
lifetimes.rs Improve diagnostics in case of lifetime elision (closes #3284) 2018-10-08 13:07:21 +03:00
literal_representation.rs Register MISTYPED_LITERAL_SUFFIXES lint 2018-10-29 20:54:21 +01:00
loops.rs Check for known array length in needless_range_loop 2018-10-19 16:34:16 -04:00
map_clone.rs Don't suggest cloned() for map Box deref 2018-10-08 06:20:32 +11:00
map_unit_fn.rs Fix doc_markdown lints 2018-10-11 15:43:13 -07:00
matches.rs Don't expand macro in single_match suggestion 2018-10-27 15:47:56 +02:00
mem_discriminant.rs Add Applicability 2018-10-24 23:39:54 -04:00
mem_forget.rs mem_forget: fix syntax error in code sample 2018-10-14 10:30:04 +02:00
mem_replace.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
minmax.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
misc.rs cmp_owned refactor 2018-10-12 04:48:54 -07:00
misc_early.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
missing_doc.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
missing_inline.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
multiple_crate_versions.rs Fix warnings introduced by #3349 2018-10-24 16:18:01 +02:00
mut_mut.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
mut_reference.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
mutex_atomic.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
needless_bool.rs Fix #3335 rev2: bool_comparison triggers 3 times on same code 2018-10-29 22:23:45 +01:00
needless_borrow.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
needless_borrowed_ref.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
needless_continue.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
needless_pass_by_value.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
needless_update.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
neg_cmp_op_on_partial_ord.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
neg_multiply.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
new_without_default.rs Don't emit new_without_default_derive if an impl of Default exists 2018-10-23 20:44:31 -07:00
no_effect.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
non_copy_const.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
non_expressive_names.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
ok_if_let.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
open_options.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
overflow_check_conditional.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
panic_unimplemented.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
partialeq_ne_impl.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
precedence.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
ptr.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
ptr_offset_with_cast.rs new_ret_no_self: add sample from #3313 to Known Problems section. 2018-10-18 23:37:43 +02:00
question_mark.rs Fix some more stutter warnings 2018-10-12 17:07:48 -07:00
ranges.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
redundant_clone.rs rustup: fix build with rustc 1.31.0-nightly (cae6efc37 2018-10-27) 2018-10-28 13:56:50 +01:00
redundant_field_names.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
redundant_pattern_matching.rs Rename if_let_redundant_pattern_matching to redundant_pattern_matching 2018-10-17 11:20:42 +08:00
reference.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
regex.rs Clarify code 2018-10-09 23:35:10 -07:00
replace_consts.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
returns.rs unused unit lint 2018-10-13 00:42:55 +02:00
serde_api.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
shadow.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
strings.rs fix: correctly reconstruct raw strings 2018-10-26 09:12:01 -07:00
suspicious_trait_impl.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
swap.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
temporary_assignment.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
transmute.rs Fix similar_names warnings 2018-10-11 15:18:58 -07:00
trivially_copy_pass_by_ref.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
types.rs new_ret_no_self added test cases 2018-10-20 06:29:17 -07:00
unicode.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
unsafe_removed_from_name.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
unused_io_amount.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
unused_label.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
unwrap.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
use_self.rs docs: use_self: hightlight the "should be" code sample as rust code as well. 2018-10-31 01:42:17 +01:00
vec.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00
wildcard_dependencies.rs Fix warnings introduced by #3349 2018-10-24 16:18:01 +02:00
write.rs Merge pull request #3285 from devonhollowood/pedantic-dogfood-items-after-statements 2018-10-08 06:59:55 +01:00
zero_div_zero.rs Add license header to Rust files 2018-10-06 09:43:08 -07:00