rust/src/test/ui/const-generics
Aaron Hill 4d66986e09
Use larger span for adjustments on method calls
Currently, we use a relatively 'small' span for THIR
expressions generated by an 'adjustment' (e.g. an autoderef,
autoborrow, unsizing). As a result, if a borrow generated
by an adustment ends up causing a borrowcheck error, for example:

```rust
let mut my_var = String::new();
let my_ref = &my_var
my_var.push('a');
my_ref;
```

then the span for the mutable borrow may end up referring
to only the base expression (e.g. `my_var`), rather than
the method call which triggered the mutable borrow
(e.g. `my_var.push('a')`)

Due to a quirk of the MIR borrowck implementation,
this doesn't always get exposed in migration mode,
but it does in many cases.

This commit makes THIR building consistently use 'larger'
spans for adjustment expressions

The intent of this change it make it clearer to users
when it's the specific way in which a variable is
used (for example, in a method call) that produdes
a borrowcheck error. For example, an error message
claiming that a 'mutable borrow occurs here' might
be confusing if it just points at a usage of a variable
(e.g. `my_var`), when no `&mut` is in sight. Pointing
at the entire expression should help to emphasize
that the method call itself is responsible for
the mutable borrow.

In several cases, this makes the `#![feature(nll)]` diagnostic
output match up exactly with the default (migration mode) output.
As a result, several `.nll.stderr` files end up getting removed
entirely.
2021-09-25 10:00:41 -05:00
..
array-impls Replace IntoIter::new with IntoIterator::into_iter in std 2021-06-02 16:09:04 +06:00
auxiliary feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
backcompat remove lazy_normalization_consts 2021-08-30 11:00:21 +02:00
defaults feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
early feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
generic_const_exprs Move object safety suggestions to the end of the error 2021-09-15 14:48:53 +00:00
infer feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
issues Use larger span for adjustments on method calls 2021-09-25 10:00:41 -05:00
late-bound-vars feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
min_const_generics feature(const_param_types) -> feature(adt_const_params) 2021-08-30 12:07:36 +02:00
occurs-check feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
std feature(const_param_types) -> feature(adt_const_params) 2021-08-30 12:07:36 +02:00
type-dependent Auto merge of #87915 - estebank:fancy-spans, r=oli-obk 2021-09-13 16:31:12 +00:00
apit-with-const-param.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
arg-in-pat-1.rs support pattern as const parents in type_of 2020-12-31 14:10:49 +01:00
arg-in-pat-2.rs support pattern as const parents in type_of 2020-12-31 14:10:49 +01:00
arg-in-pat-3.rs support pattern as const parents in type_of 2020-12-31 14:10:49 +01:00
argument_order.full.stderr feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
argument_order.min.stderr feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
argument_order.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
array-wrapper-struct-ctor.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
associated-type-bound-fail.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
associated-type-bound-fail.stderr feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
associated-type-bound.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
broken-mir-1.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
broken-mir-2.rs Ignore automatically derived impls of Clone and Debug in dead code analysis 2021-09-09 19:49:07 +02:00
cannot-infer-type-for-const-param.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
coerce_unsized_array.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
concrete-const-as-fn-arg.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
concrete-const-impl-method.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
condition-in-trait-const-arg.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
conservative_is_privately_uninhabited_uses_correct_param_env-1.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
conservative_is_privately_uninhabited_uses_correct_param_env-2.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
const-arg-in-const-arg.min.stderr feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
const-arg-in-const-arg.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
const-arg-in-fn.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
const-arg-type-arg-misordered.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
const-arg-type-arg-misordered.stderr feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
const-argument-cross-crate-mismatch.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
const-argument-cross-crate-mismatch.stderr feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
const-argument-cross-crate.rs Add revisions to const generic UI tests. 2020-09-10 09:40:54 +02:00
const-argument-if-length.full.stderr feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
const-argument-if-length.min.stderr feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
const-argument-if-length.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
const-argument-non-static-lifetime.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
const-fn-with-const-param.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
const-generic-type_name.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
const-param-after-const-literal-arg.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
const-param-before-other-params.full.stderr feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
const-param-before-other-params.min.stderr feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
const-param-before-other-params.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
const-param-elided-lifetime.full.stderr feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
const-param-elided-lifetime.min.stderr feature(const_param_types) -> feature(adt_const_params) 2021-08-30 12:07:36 +02:00
const-param-elided-lifetime.rs feature(const_param_types) -> feature(adt_const_params) 2021-08-30 12:07:36 +02:00
const-param-in-async.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
const-param-type-depends-on-const-param.full.stderr update tests 2020-12-26 18:24:10 +01:00
const-param-type-depends-on-const-param.min.stderr feature(const_param_types) -> feature(adt_const_params) 2021-08-30 12:07:36 +02:00
const-param-type-depends-on-const-param.rs feature(const_param_types) -> feature(adt_const_params) 2021-08-30 12:07:36 +02:00
const-param-type-depends-on-type-param-ungated.rs update tests 2020-12-26 18:24:10 +01:00
const-param-type-depends-on-type-param-ungated.stderr update tests 2020-12-26 18:24:10 +01:00
const-param-type-depends-on-type-param.full.stderr Add help message for unused type param 2021-05-01 21:58:06 +00:00
const-param-type-depends-on-type-param.min.stderr Add help message for unused type param 2021-05-01 21:58:06 +00:00
const-param-type-depends-on-type-param.rs feature(const_param_types) -> feature(adt_const_params) 2021-08-30 12:07:36 +02:00
const-parameter-uppercase-lint.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
const-parameter-uppercase-lint.stderr feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
const_trait_fn-issue-88433.rs add test 2021-09-02 16:34:25 +02:00
core-types.rs feature(const_param_types) -> feature(adt_const_params) 2021-08-30 12:07:36 +02:00
cross_crate_complex.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
different_generic_args.full.stderr feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
different_generic_args.min.stderr feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
different_generic_args.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
different_generic_args_array.rs feature(const_param_types) -> feature(adt_const_params) 2021-08-30 12:07:36 +02:00
different_generic_args_array.stderr feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
dont-evaluate-array-len-on-err-1.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
dont-evaluate-array-len-on-err-1.stderr Various diagnostics clean ups/tweaks 2021-07-19 08:43:35 -07:00
dyn-supertraits.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
enum-variants.rs fmt 2021-08-07 20:55:37 +01:00
exhaustive-value.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
exhaustive-value.stderr feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
fn-const-param-call.full.stderr update tests 2020-12-26 18:24:10 +01:00
fn-const-param-call.min.stderr update tests 2020-12-26 18:24:10 +01:00
fn-const-param-call.rs feature(const_param_types) -> feature(adt_const_params) 2021-08-30 12:07:36 +02:00
fn-const-param-infer.full.stderr update tests 2020-12-26 18:24:10 +01:00
fn-const-param-infer.min.stderr update tests 2020-12-26 18:24:10 +01:00
fn-const-param-infer.rs feature(const_param_types) -> feature(adt_const_params) 2021-08-30 12:07:36 +02:00
forbid-non-structural_match-types.rs feature(const_param_types) -> feature(adt_const_params) 2021-08-30 12:07:36 +02:00
forbid-non-structural_match-types.stderr feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
foreign-item-const-parameter.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
foreign-item-const-parameter.stderr feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
generic-param-mismatch.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
generic-param-mismatch.stderr feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
impl-const-generic-struct.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
impl-trait-with-const-arguments.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
impl-trait-with-const-arguments.stderr feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
incorrect-number-of-const-args.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
incorrect-number-of-const-args.stderr feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
infer_arg_from_pat.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
infer_arr_len_from_pat.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
integer-literal-generic-arg-in-where-clause.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
intrinsics-type_name-as-const-argument.min.stderr feature(const_param_types) -> feature(adt_const_params) 2021-08-30 12:07:36 +02:00
intrinsics-type_name-as-const-argument.rs feature(const_param_types) -> feature(adt_const_params) 2021-08-30 12:07:36 +02:00
invalid-const-arg-for-type-param.rs improve diagnosts for GATs 2021-05-11 14:09:46 +02:00
invalid-const-arg-for-type-param.stderr improve diagnosts for GATs 2021-05-11 14:09:46 +02:00
invalid-constant-in-args.rs Rework diagnostics for wrong number of generic args 2021-01-10 13:07:40 +01:00
invalid-constant-in-args.stderr improve diagnosts for GATs 2021-05-11 14:09:46 +02:00
invalid-enum.rs feature(const_param_types) -> feature(adt_const_params) 2021-08-30 12:07:36 +02:00
invalid-enum.stderr Modify structured suggestion output 2021-08-11 09:46:24 +00:00
nested-type.full.stderr update tests 2020-12-26 18:24:10 +01:00
nested-type.min.stderr feature(const_param_types) -> feature(adt_const_params) 2021-08-30 12:07:36 +02:00
nested-type.rs feature(const_param_types) -> feature(adt_const_params) 2021-08-30 12:07:36 +02:00
params-in-ct-in-ty-param-lazy-norm.full.stderr allow unordered const/ty params if any cg feature is active 2021-08-30 11:00:21 +02:00
params-in-ct-in-ty-param-lazy-norm.min.stderr feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
params-in-ct-in-ty-param-lazy-norm.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
parent_generics_of_encoding.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
parent_generics_of_encoding_impl_trait.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
parent_generics_of_encoding_impl_trait.stderr Use note to point at bound introducing requirement 2021-08-16 17:47:22 +00:00
promotion.rs update tests 2020-12-26 18:24:10 +01:00
raw-ptr-const-param-deref.full.stderr update tests 2020-12-26 18:24:10 +01:00
raw-ptr-const-param-deref.min.stderr update tests 2020-12-26 18:24:10 +01:00
raw-ptr-const-param-deref.rs feature(const_param_types) -> feature(adt_const_params) 2021-08-30 12:07:36 +02:00
raw-ptr-const-param.full.stderr update tests 2020-12-26 18:24:10 +01:00
raw-ptr-const-param.min.stderr update tests 2020-12-26 18:24:10 +01:00
raw-ptr-const-param.rs feature(const_param_types) -> feature(adt_const_params) 2021-08-30 12:07:36 +02:00
slice-const-param-mismatch.full.stderr update tests 2020-12-26 18:24:10 +01:00
slice-const-param-mismatch.min.stderr feature(const_param_types) -> feature(adt_const_params) 2021-08-30 12:07:36 +02:00
slice-const-param-mismatch.rs feature(const_param_types) -> feature(adt_const_params) 2021-08-30 12:07:36 +02:00
slice-const-param.rs feature(const_param_types) -> feature(adt_const_params) 2021-08-30 12:07:36 +02:00
sneaky-array-repeat-expr.rs E-not-needs-test 2021-09-02 21:22:13 +01:00
sneaky-array-repeat-expr.stderr E-not-needs-test 2021-09-02 21:22:13 +01:00
struct-with-invalid-const-param.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
struct-with-invalid-const-param.stderr feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
suggest_const_for_array.rs Add check for array/usize mismatch in astconv 2021-01-04 10:07:15 +00:00
suggest_const_for_array.stderr Add check for array/usize mismatch in astconv 2021-01-04 10:07:15 +00:00
trait-const-args.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
transmute-const-param-static-reference.min.stderr feature(const_param_types) -> feature(adt_const_params) 2021-08-30 12:07:36 +02:00
transmute-const-param-static-reference.rs feature(const_param_types) -> feature(adt_const_params) 2021-08-30 12:07:36 +02:00
transparent-maybeunit-array-wrapper.rs feature(const_param_types) -> feature(adt_const_params) 2021-08-30 12:07:36 +02:00
type-after-const-ok.min.stderr update tests 2020-12-26 18:24:10 +01:00
type-after-const-ok.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
type_mismatch.rs Add a second regression test 2021-03-19 13:44:50 +00:00
type_mismatch.stderr Stop sorting bodies by span. 2021-09-01 20:13:16 +02:00
type_not_in_scope.rs Do not ICE on ty::Error as an error must already have been reported 2021-03-19 11:46:27 +00:00
type_not_in_scope.stderr Do not ICE on ty::Error as an error must already have been reported 2021-03-19 11:46:27 +00:00
type_of_anon_const.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
types-mismatch-const-args.full.stderr feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
types-mismatch-const-args.min.stderr feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
types-mismatch-const-args.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
uninferred-consts-during-codegen-1.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
uninferred-consts-during-codegen-2.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
unknown_adt.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
unknown_adt.stderr feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
unused-const-param.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
unused-type-param-suggestion.rs Add help message for unused type param 2021-05-01 21:58:06 +00:00
unused-type-param-suggestion.stderr Add help message for unused type param 2021-05-01 21:58:06 +00:00
unused_braces.fixed feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
unused_braces.full.fixed update tests 2020-12-26 18:24:10 +01:00
unused_braces.min.fixed update tests 2020-12-26 18:24:10 +01:00
unused_braces.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00
unused_braces.stderr Use more accurate spans for "unused delimiter" lint 2021-09-09 14:24:33 +00:00
where-clauses.rs feature(const_generics) -> feature(const_param_types) 2021-08-30 11:00:21 +02:00