rust/tests/ui
bors 1ac6f4e9ae Auto merge of #3772 - flip1995:ice-3719, r=Manishearth
Fix ICE #3719+#3718 in lint match_ref_pats

Fixes #3719
This conveniently also fixes #3718

The ICE occurs when the match expression was a macro call, where the macro was defined in another file. Since we don't have the ability to reproduce this behavior with our UI tests (AFAIK), I couldn't add a test reproducing this ICE.. However, I added a test which is related to the ICE, to show the new behavior of the lint.

I tested it with the mscheme repo locally and the ICE didn't happen anymore.

r? @matthiaskrgr
2019-02-25 12:30:35 +00:00
..
author
auxiliary
crashes
missing_const_for_fn
absurd-extreme-comparisons.rs
absurd-extreme-comparisons.stderr
approx_const.rs
approx_const.stderr
arithmetic.rs
arithmetic.stderr
assertions_on_constants.rs
assertions_on_constants.stderr
assign_ops2.rs
assign_ops2.stderr
assign_ops.rs
assign_ops.stderr
attrs.rs
attrs.stderr
author.rs
author.stdout
bit_masks.rs
bit_masks.stderr
blacklisted_name.rs
blacklisted_name.stderr
block_in_if_condition.rs
block_in_if_condition.stderr
bool_comparison.rs
bool_comparison.stderr
booleans.rs
booleans.stderr
borrow_box.rs
borrow_box.stderr
box_vec.rs
box_vec.stderr
builtin-type-shadow.rs
builtin-type-shadow.stderr
bytecount.rs
bytecount.stderr
cast_alignment.rs
cast_alignment.stderr
cast_lossless_float.fixed
cast_lossless_float.rs
cast_lossless_float.stderr
cast_lossless_integer.fixed
cast_lossless_integer.rs
cast_lossless_integer.stderr
cast_ref_to_mut.rs
cast_ref_to_mut.stderr
cast_size.rs
cast_size.stderr
cast.rs
cast.stderr
cfg_attr_rustfmt.fixed
cfg_attr_rustfmt.rs
cfg_attr_rustfmt.stderr
char_lit_as_u8.rs
char_lit_as_u8.stderr
checked_unwrap.rs
checked_unwrap.stderr
clone_on_copy_impl.rs
clone_on_copy_mut.rs
cmp_nan.rs
cmp_nan.stderr
cmp_null.rs
cmp_null.stderr
cmp_owned.rs
cmp_owned.stderr
collapsible_if.fixed
collapsible_if.rs
collapsible_if.stderr
complex_types.rs
complex_types.stderr
const_static_lifetime.rs
const_static_lifetime.stderr
copy_iterator.rs
copy_iterator.stderr
cstring.rs
cstring.stderr
cyclomatic_complexity_attr_used.rs
cyclomatic_complexity_attr_used.stderr
cyclomatic_complexity.rs
cyclomatic_complexity.stderr
dbg_macro.rs
dbg_macro.stderr
decimal_literal_representation.rs
decimal_literal_representation.stderr
default_trait_access.rs
default_trait_access.stderr
default_trait_access.stdout
deprecated.rs
deprecated.stderr
derive.rs
derive.stderr
diverging_sub_expression.rs
diverging_sub_expression.stderr
dlist.rs
dlist.stderr
doc.rs
doc.stderr
double_comparison.fixed
double_comparison.rs
double_comparison.stderr
double_neg.rs
double_neg.stderr
double_parens.rs
double_parens.stderr
drop_bounds.rs
drop_bounds.stderr
drop_forget_copy.rs
drop_forget_copy.stderr
drop_forget_ref.rs
drop_forget_ref.stderr
duplicate_underscore_argument.rs
duplicate_underscore_argument.stderr
duration_subsec.fixed
duration_subsec.rs
duration_subsec.stderr
duration_subsec.stdout
else_if_without_else.rs
else_if_without_else.stderr
empty_enum.rs
empty_enum.stderr
empty_line_after_outer_attribute.rs
empty_line_after_outer_attribute.stderr
entry.rs
entry.stderr
enum_glob_use.rs
enum_glob_use.stderr
enum_variants.rs
enum_variants.stderr
enums_clike.rs
enums_clike.stderr
eq_op.rs
eq_op.stderr
erasing_op.rs
erasing_op.stderr
escape_analysis.rs
escape_analysis.stderr
eta.rs
eta.stderr
eval_order_dependence.rs
eval_order_dependence.stderr
excessive_precision.fixed
excessive_precision.rs
excessive_precision.stderr
expect_fun_call.fixed
expect_fun_call.rs
expect_fun_call.stderr
explicit_counter_loop.rs
explicit_counter_loop.stderr
explicit_write.fixed
explicit_write.rs
explicit_write.stderr
fallible_impl_from.rs
fallible_impl_from.stderr
filter_methods.rs
filter_methods.stderr
float_cmp_const.rs
float_cmp_const.stderr
float_cmp.rs
float_cmp.stderr
fn_to_numeric_cast.rs
fn_to_numeric_cast.stderr
for_kv_map.rs
for_kv_map.stderr
for_loop_over_option_result.rs
for_loop_over_option_result.stderr
for_loop.rs
for_loop.stderr
for_loop.stdout
format.rs
format.stderr
formatting.rs
formatting.stderr
functions_maxlines.rs
functions_maxlines.stderr
functions.rs
functions.stderr
fxhash.rs
fxhash.stderr
get_unwrap.fixed
get_unwrap.rs
get_unwrap.stderr
ice-2636.rs
ice-2636.stderr
ice-3717.rs
ice-3717.stderr
identity_conversion.rs
identity_conversion.stderr
identity_op.rs
identity_op.stderr
if_not_else.rs
if_not_else.stderr
if_same_then_else.rs
if_same_then_else.stderr
ifs_same_cond.rs
ifs_same_cond.stderr
impl.rs
impl.stderr
implicit_hasher.rs
implicit_hasher.stderr
implicit_return.rs
implicit_return.stderr
inconsistent_digit_grouping.fixed
inconsistent_digit_grouping.rs
inconsistent_digit_grouping.stderr
indexing_slicing.rs
indexing_slicing.stderr
infallible_destructuring_match.fixed
infallible_destructuring_match.rs
infallible_destructuring_match.stderr
infinite_iter.rs
infinite_iter.stderr
infinite_loop.rs
infinite_loop.stderr
inline_fn_without_body.rs
inline_fn_without_body.stderr
int_plus_one.rs
int_plus_one.stderr
into_iter_on_ref.fixed
into_iter_on_ref.rs
into_iter_on_ref.stderr
invalid_ref.rs
invalid_ref.stderr
invalid_upcast_comparisons.rs
invalid_upcast_comparisons.stderr
issue_2356.rs
issue_2356.stderr
issue-3145.rs
issue-3145.stderr
item_after_statement.rs
item_after_statement.stderr
iter_skip_next.rs
iter_skip_next.stderr
large_digit_groups.fixed
large_digit_groups.rs
large_digit_groups.stderr
large_enum_variant.rs
large_enum_variant.stderr
len_zero.rs
len_zero.stderr
let_if_seq.rs
let_if_seq.stderr
let_return.rs
let_return.stderr
let_unit.rs
let_unit.stderr
lifetimes.rs
lifetimes.stderr
lint_without_lint_pass.rs
lint_without_lint_pass.stderr
literals.rs
literals.stderr
map_clone.fixed
map_clone.rs
map_clone.stderr
map_flatten.rs
map_flatten.stderr
map_unit_fn.rs
match_bool.rs
match_bool.stderr
match_overlapping_arm.rs
match_overlapping_arm.stderr
match_same_arms.rs
match_same_arms.stderr
matches.rs
matches.stderr
mem_discriminant.rs
mem_discriminant.stderr
mem_forget.rs
mem_forget.stderr
mem_replace.fixed
mem_replace.rs
mem_replace.stderr
methods.rs
methods.stderr
min_max.rs
min_max.stderr
missing_inline.rs
missing_inline.stderr
missing-doc.rs
missing-doc.stderr
module_inception.rs
module_inception.stderr
module_name_repetitions.rs
module_name_repetitions.stderr
modulo_one.rs
modulo_one.stderr
mut_from_ref.rs
mut_from_ref.stderr
mut_mut.rs
mut_mut.stderr
mut_range_bound.rs
mut_range_bound.stderr
mut_reference.rs
mut_reference.stderr
mutex_atomic.rs
mutex_atomic.stderr
my_lint.rs
needless_bool.rs
needless_bool.stderr
needless_borrow.rs
needless_borrow.stderr
needless_borrowed_ref.rs
needless_borrowed_ref.stderr
needless_collect.rs
needless_collect.stderr
needless_continue.rs
needless_continue.stderr
needless_pass_by_value_proc_macro.rs
needless_pass_by_value.rs
needless_pass_by_value.stderr
needless_range_loop.rs
needless_range_loop.stderr
needless_return.rs
needless_return.stderr
needless_update.rs
needless_update.stderr
neg_cmp_op_on_partial_ord.rs
neg_cmp_op_on_partial_ord.stderr
neg_multiply.rs
neg_multiply.stderr
never_loop.rs
never_loop.stderr
new_ret_no_self.rs
new_ret_no_self.stderr
new_without_default.rs
new_without_default.stderr
no_effect.rs
no_effect.stderr
non_copy_const.rs
non_copy_const.stderr
non_expressive_names.rs
non_expressive_names.stderr
ok_expect.rs
ok_expect.stderr
ok_if_let.rs
ok_if_let.stderr
op_ref.rs
op_ref.stderr
open_options.rs
open_options.stderr
option_map_unit_fn.rs
option_map_unit_fn.stderr
option_option.rs
option_option.stderr
overflow_check_conditional.rs
overflow_check_conditional.stderr
panic_unimplemented.rs
panic_unimplemented.stderr
partialeq_ne_impl.rs
partialeq_ne_impl.stderr
patterns.rs
patterns.stderr
precedence.fixed
precedence.rs
precedence.stderr
print_literal.rs
print_literal.stderr
print_with_newline.rs
print_with_newline.stderr
print.rs
print.stderr
println_empty_string.fixed
println_empty_string.rs
println_empty_string.stderr
proc_macro.rs
proc_macro.stderr
ptr_arg.rs
ptr_arg.stderr
ptr_offset_with_cast.fixed
ptr_offset_with_cast.rs
ptr_offset_with_cast.stderr
question_mark.rs
question_mark.stderr
range_plus_minus_one.rs
range_plus_minus_one.stderr
range.rs
range.stderr
redundant_clone.rs
redundant_clone.stderr
redundant_closure_call.rs
redundant_closure_call.stderr
redundant_field_names.fixed
redundant_field_names.rs
redundant_field_names.stderr
redundant_pattern_matching.rs
redundant_pattern_matching.stderr
reference.rs
reference.stderr
regex.rs
regex.stderr
rename.rs
rename.stderr
replace_consts.fixed
replace_consts.rs
replace_consts.stderr
result_map_unit_fn.rs
result_map_unit_fn.stderr
result_map_unwrap_or_else.rs
result_map_unwrap_or_else.stderr
serde.rs
serde.stderr
shadow.rs
shadow.stderr
short_circuit_statement.rs
short_circuit_statement.stderr
similar_names.rs
similar_names.stderr
single_char_pattern.fixed
single_char_pattern.rs
single_char_pattern.stderr
single_match_else.rs
single_match_else.stderr
single_match.rs
single_match.stderr
slow_vector_initialization.rs
slow_vector_initialization.stderr
slow_vector_initialization.stdout
starts_ends_with.fixed
starts_ends_with.rs
starts_ends_with.stderr
string_extend.fixed
string_extend.rs
string_extend.stderr
strings.rs
strings.stderr
suspicious_arithmetic_impl.rs
suspicious_arithmetic_impl.stderr
swap.rs
swap.stderr
temporary_assignment.rs
temporary_assignment.stderr
toplevel_ref_arg.rs
toplevel_ref_arg.stderr
trailing_zeros.rs
trailing_zeros.stderr
trailing_zeros.stdout
transmute_32bit.rs
transmute_64bit.rs
transmute_64bit.stderr
transmute.rs
transmute.stderr
trivially_copy_pass_by_ref.rs
trivially_copy_pass_by_ref.stderr
ty_fn_sig.rs
ty_fn_sig.stderr
types.fixed
types.rs
types.stderr
unicode.rs
unicode.stderr
unit_arg.fixed
unit_arg.rs
unit_arg.stderr
unit_cmp.rs
unit_cmp.stderr
unknown_clippy_lints.rs
unknown_clippy_lints.stderr
unnecessary_clone.rs
unnecessary_clone.stderr
unnecessary_filter_map.rs
unnecessary_filter_map.stderr
unnecessary_fold.fixed
unnecessary_fold.rs
unnecessary_fold.stderr
unnecessary_operation.rs
unnecessary_operation.stderr
unnecessary_ref.fixed
unnecessary_ref.rs
unnecessary_ref.stderr
unneeded_field_pattern.rs
unneeded_field_pattern.stderr
unreadable_literal.fixed
unreadable_literal.rs
unreadable_literal.stderr
unsafe_removed_from_name.rs
unsafe_removed_from_name.stderr
unused_io_amount.rs
unused_io_amount.stderr
unused_labels.rs
unused_labels.stderr
unused_lt.rs
unused_lt.stderr
unused_unit.rs
unused_unit.stderr
unwrap_or.rs
unwrap_or.stderr
unwrap_or.stdout
update-all-references.sh
update-references.sh
use_self.fixed
use_self.rs
use_self.stderr
used_underscore_binding.rs
used_underscore_binding.stderr
useful_asref.rs
useless_asref.rs
useless_asref.stderr
useless_attribute.rs
useless_attribute.stderr
vec_box_sized.fixed
vec_box_sized.rs
vec_box_sized.stderr
vec.fixed
vec.rs
vec.stderr
while_loop.rs
while_loop.stderr
wildcard_enum_match_arm.rs
wildcard_enum_match_arm.stderr
write_literal.rs
write_literal.stderr
write_with_newline.rs
write_with_newline.stderr
writeln_empty_string.fixed
writeln_empty_string.rs
writeln_empty_string.stderr
wrong_self_convention.rs
wrong_self_convention.stderr
zero_div_zero.rs
zero_div_zero.stderr
zero_ptr.rs
zero_ptr.stderr