From 2728af7bc02ab48bf4dd861cb69b5b786ecb261d Mon Sep 17 00:00:00 2001 From: Mahdi Dibaiee Date: Tue, 11 Jan 2022 21:28:04 +0000 Subject: rustc_pass_by_value: handle inferred generic types (with _) --- .../ui-fulldeps/internal-lints/rustc_pass_by_value.rs | 8 +++++--- .../internal-lints/rustc_pass_by_value.stderr | 18 +++++++++++++++--- 2 files changed, 20 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/test/ui-fulldeps/internal-lints/rustc_pass_by_value.rs b/src/test/ui-fulldeps/internal-lints/rustc_pass_by_value.rs index f8ab0f056d7..402c41f3766 100644 --- a/src/test/ui-fulldeps/internal-lints/rustc_pass_by_value.rs +++ b/src/test/ui-fulldeps/internal-lints/rustc_pass_by_value.rs @@ -105,11 +105,13 @@ struct WithParameters { } impl WithParameters { - fn test( + fn test<'a>( value: WithParameters, - reference: &WithParameters, //~ ERROR passing `WithParameters` by reference + reference: &'a WithParameters, //~ ERROR passing `WithParameters` by reference reference_with_m: &WithParameters, //~ ERROR passing `WithParameters` by reference - ) { + ) -> &'a WithParameters { + //~^ ERROR passing `WithParameters` by reference + reference as &WithParameters<_, 1> //~ ERROR passing `WithParameters<_, 1>` by reference } } diff --git a/src/test/ui-fulldeps/internal-lints/rustc_pass_by_value.stderr b/src/test/ui-fulldeps/internal-lints/rustc_pass_by_value.stderr index c5307f0f67d..7f6e57b38f3 100644 --- a/src/test/ui-fulldeps/internal-lints/rustc_pass_by_value.stderr +++ b/src/test/ui-fulldeps/internal-lints/rustc_pass_by_value.stderr @@ -103,8 +103,8 @@ LL | reference: &CustomAlias, error: passing `WithParameters` by reference --> $DIR/rustc_pass_by_value.rs:110:20 | -LL | reference: &WithParameters, - | ^^^^^^^^^^^^^^^^^^^^^ help: try passing by value: `WithParameters` +LL | reference: &'a WithParameters, + | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try passing by value: `WithParameters` error: passing `WithParameters` by reference --> $DIR/rustc_pass_by_value.rs:111:27 @@ -112,5 +112,17 @@ error: passing `WithParameters` by reference LL | reference_with_m: &WithParameters, | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try passing by value: `WithParameters` -error: aborting due to 18 previous errors +error: passing `WithParameters` by reference + --> $DIR/rustc_pass_by_value.rs:112:10 + | +LL | ) -> &'a WithParameters { + | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try passing by value: `WithParameters` + +error: passing `WithParameters<_, 1>` by reference + --> $DIR/rustc_pass_by_value.rs:114:22 + | +LL | reference as &WithParameters<_, 1> + | ^^^^^^^^^^^^^^^^^^^^^ help: try passing by value: `WithParameters<_, 1>` + +error: aborting due to 20 previous errors -- cgit 1.4.1-3-g733a5