Skip to content

Commit

Permalink
Bless tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Nilstrieb committed Jan 6, 2023
1 parent 32203e8 commit 6efacdd
Show file tree
Hide file tree
Showing 10 changed files with 111 additions and 45 deletions.
34 changes: 14 additions & 20 deletions src/test/codegen-units/polymorphization/unused_type_parameters.rs
Expand Up @@ -41,12 +41,11 @@ mod functions {
//~ MONO_ITEM fn functions::used_argument::<u64>
//
// Function uses type parameter in substitutions to another function.
pub fn used_substs<T>() {
pub fn forwarded<T>() {
unused::<T>()
}

//~ MONO_ITEM fn functions::used_substs::<u32>
//~ MONO_ITEM fn functions::used_substs::<u64>
//~ MONO_ITEM fn functions::forwarded::<T>
}


Expand Down Expand Up @@ -144,15 +143,13 @@ mod closures {
//~ MONO_ITEM fn closures::used_upvar::<u64>

// Closure uses type parameter in substitutions to another function.
pub fn used_substs<T>() {
pub fn forwarded<T>() {
let x = || super::functions::unused::<T>();
x()
}

//~ MONO_ITEM fn closures::used_substs::<u32>::{closure#0}
//~ MONO_ITEM fn closures::used_substs::<u64>::{closure#0}
//~ MONO_ITEM fn closures::used_substs::<u32>
//~ MONO_ITEM fn closures::used_substs::<u64>
//~ MONO_ITEM fn closures::forwarded::<T>::{closure#0}
//~ MONO_ITEM fn closures::forwarded::<T>
}

mod methods {
Expand Down Expand Up @@ -197,12 +194,11 @@ mod methods {
//~ MONO_ITEM fn methods::Foo::<u64>::used_both::<u64>

// Function uses type parameter in substitutions to another function.
pub fn used_substs() {
pub fn forwarded() {
super::functions::unused::<F>()
}

//~ MONO_ITEM fn methods::Foo::<u32>::used_substs
//~ MONO_ITEM fn methods::Foo::<u64>::used_substs
//~ MONO_ITEM fn methods::Foo::<F>::forwarded

// Function has an unused type parameter from impl and fn.
pub fn closure_unused_all<G: Default>() -> u32 {
Expand Down Expand Up @@ -260,15 +256,13 @@ mod methods {
//~ MONO_ITEM fn methods::Foo::<u64>::closure_used_impl::<G>

// Closure uses type parameter in substitutions to another function.
pub fn closure_used_substs() {
pub fn closure_forwarded() {
let x = || super::functions::unused::<F>();
x()
}

//~ MONO_ITEM fn methods::Foo::<u32>::closure_used_substs::{closure#0}
//~ MONO_ITEM fn methods::Foo::<u64>::closure_used_substs::{closure#0}
//~ MONO_ITEM fn methods::Foo::<u32>::closure_used_substs
//~ MONO_ITEM fn methods::Foo::<u64>::closure_used_substs
//~ MONO_ITEM fn methods::Foo::<F>::closure_forwarded::{closure#0}
//~ MONO_ITEM fn methods::Foo::<F>::closure_forwarded
}
}

Expand All @@ -280,7 +274,7 @@ fn dispatch<T: Default>() {
functions::used_binding_value::<T>();
functions::used_binding_type::<T>();
functions::used_argument::<T>(Default::default());
functions::used_substs::<T>();
functions::forwarded::<T>();

closures::no_parameters();
let _ = closures::unused::<T>();
Expand All @@ -290,19 +284,19 @@ fn dispatch<T: Default>() {
let _ = closures::used_argument::<T>(Default::default());
let _ = closures::used_argument_closure::<T>();
let _ = closures::used_upvar::<T>();
let _ = closures::used_substs::<T>();
let _ = closures::forwarded::<T>();

methods::Foo::<T>::unused_impl();
methods::Foo::<T>::unused_both::<T>();
methods::Foo::<T>::used_impl();
methods::Foo::<T>::used_fn::<T>();
methods::Foo::<T>::used_both::<T>();
methods::Foo::<T>::used_substs();
methods::Foo::<T>::forwarded();
let _ = methods::Foo::<T>::closure_unused_all::<T>();
let _ = methods::Foo::<T>::closure_used_both::<T>();
let _ = methods::Foo::<T>::closure_used_impl::<T>();
let _ = methods::Foo::<T>::closure_used_fn::<T>();
let _ = methods::Foo::<T>::closure_used_substs();
let _ = methods::Foo::<T>::closure_forwarded();
}

//~ MONO_ITEM fn dispatch::<u32>
Expand Down
2 changes: 2 additions & 0 deletions src/test/ui/polymorphization/const_parameters/closures.rs
Expand Up @@ -53,7 +53,9 @@ pub fn unused_upvar<const T: usize>() -> usize {
// Closure uses generic parameter in substitutions to another function.
#[rustc_polymorphize_error]
pub fn used_substs<const T: usize>() -> usize {
//~^ ERROR item has unused generic parameters
let x = || unused::<T>();
//~^ ERROR item has unused generic parameters
x()
}

Expand Down
17 changes: 16 additions & 1 deletion src/test/ui/polymorphization/const_parameters/closures.stderr
Expand Up @@ -40,5 +40,20 @@ LL | let x: usize = T;
LL | let y = || x;
| ^^

error: aborting due to 4 previous errors; 1 warning emitted
error: item has unused generic parameters
--> $DIR/closures.rs:57:13
|
LL | pub fn used_substs<const T: usize>() -> usize {
| -------------- generic parameter `T` is unused
LL |
LL | let x = || unused::<T>();
| ^^

error: item has unused generic parameters
--> $DIR/closures.rs:55:8
|
LL | pub fn used_substs<const T: usize>() -> usize {
| ^^^^^^^^^^^ -------------- generic parameter `T` is unused

error: aborting due to 6 previous errors; 1 warning emitted

1 change: 1 addition & 0 deletions src/test/ui/polymorphization/const_parameters/functions.rs
Expand Up @@ -26,6 +26,7 @@ pub fn used_binding<const T: usize>() -> usize {
// Function uses generic parameter in substitutions to another function.
#[rustc_polymorphize_error]
pub fn used_substs<const T: usize>() {
//~^ ERROR item has unused generic parameters
unused::<T>()
}

Expand Down
Expand Up @@ -13,5 +13,11 @@ error: item has unused generic parameters
LL | pub fn unused<const T: usize>() {
| ^^^^^^ -------------- generic parameter `T` is unused

error: aborting due to previous error; 1 warning emitted
error: item has unused generic parameters
--> $DIR/functions.rs:28:8
|
LL | pub fn used_substs<const T: usize>() {
| ^^^^^^^^^^^ -------------- generic parameter `T` is unused

error: aborting due to 2 previous errors; 1 warning emitted

18 changes: 6 additions & 12 deletions src/test/ui/polymorphization/predicates.stderr
@@ -1,3 +1,9 @@
error: item has unused generic parameters
--> $DIR/predicates.rs:10:4
|
LL | fn bar<I>() {
| ^^^ - generic parameter `I` is unused

error: item has unused generic parameters
--> $DIR/predicates.rs:15:4
|
Expand Down Expand Up @@ -35,17 +41,5 @@ error: item has unused generic parameters
LL | fn foobar<F, G>() -> usize
| ^^^^^^ - generic parameter `F` is unused

error: item has unused generic parameters
--> $DIR/predicates.rs:10:4
|
LL | fn bar<I>() {
| ^^^ - generic parameter `I` is unused

note: the above error was encountered while instantiating `fn foo::<std::slice::Iter<'_, u32>, T>`
--> $DIR/predicates.rs:86:5
|
LL | foo(x.iter());
| ^^^^^^^^^^^^^

error: aborting due to 6 previous errors

4 changes: 4 additions & 0 deletions src/test/ui/polymorphization/type_parameters/closures.rs
Expand Up @@ -80,7 +80,9 @@ pub fn used_upvar<T: Default>() -> T {
// Closure uses generic parameter in substitutions to another function.
#[rustc_polymorphize_error]
pub fn used_substs<T>() -> u32 {
//~^ ERROR item has unused generic parameters
let x = || unused::<T>();
//~^ ERROR item has unused generic parameters
x()
}

Expand Down Expand Up @@ -137,7 +139,9 @@ impl<F: Default> Foo<F> {
// Closure uses generic parameter in substitutions to another function.
#[rustc_polymorphize_error]
pub fn used_substs() -> u32 {
//~^ ERROR item has unused generic parameters
let x = || unused::<F>();
//~^ ERROR item has unused generic parameters
x()
}
}
Expand Down
47 changes: 40 additions & 7 deletions src/test/ui/polymorphization/type_parameters/closures.stderr
Expand Up @@ -23,7 +23,22 @@ LL | let add_one = |x: u32| x + 1;
| ^^^^^^^^

error: item has unused generic parameters
--> $DIR/closures.rs:94:23
--> $DIR/closures.rs:84:13
|
LL | pub fn used_substs<T>() -> u32 {
| - generic parameter `T` is unused
LL |
LL | let x = || unused::<T>();
| ^^

error: item has unused generic parameters
--> $DIR/closures.rs:82:8
|
LL | pub fn used_substs<T>() -> u32 {
| ^^^^^^^^^^^ - generic parameter `T` is unused

error: item has unused generic parameters
--> $DIR/closures.rs:96:23
|
LL | impl<F: Default> Foo<F> {
| - generic parameter `F` is unused
Expand All @@ -35,7 +50,7 @@ LL | let add_one = |x: u32| x + 1;
| ^^^^^^^^

error: item has unused generic parameters
--> $DIR/closures.rs:92:12
--> $DIR/closures.rs:94:12
|
LL | impl<F: Default> Foo<F> {
| - generic parameter `F` is unused
Expand All @@ -44,7 +59,7 @@ LL | pub fn unused_all<G: Default>() -> u32 {
| ^^^^^^^^^^ - generic parameter `G` is unused

error: item has unused generic parameters
--> $DIR/closures.rs:128:23
--> $DIR/closures.rs:130:23
|
LL | pub fn used_impl<G: Default>() -> u32 {
| - generic parameter `G` is unused
Expand All @@ -53,13 +68,13 @@ LL | let add_one = |x: u32| {
| ^^^^^^^^

error: item has unused generic parameters
--> $DIR/closures.rs:126:12
--> $DIR/closures.rs:128:12
|
LL | pub fn used_impl<G: Default>() -> u32 {
| ^^^^^^^^^ - generic parameter `G` is unused

error: item has unused generic parameters
--> $DIR/closures.rs:115:23
--> $DIR/closures.rs:117:23
|
LL | impl<F: Default> Foo<F> {
| - generic parameter `F` is unused
Expand All @@ -68,13 +83,31 @@ LL | let add_one = |x: u32| {
| ^^^^^^^^

error: item has unused generic parameters
--> $DIR/closures.rs:113:12
--> $DIR/closures.rs:115:12
|
LL | impl<F: Default> Foo<F> {
| - generic parameter `F` is unused
...
LL | pub fn used_fn<G: Default>() -> u32 {
| ^^^^^^^

error: aborting due to 9 previous errors
error: item has unused generic parameters
--> $DIR/closures.rs:143:17
|
LL | impl<F: Default> Foo<F> {
| - generic parameter `F` is unused
...
LL | let x = || unused::<F>();
| ^^

error: item has unused generic parameters
--> $DIR/closures.rs:141:12
|
LL | impl<F: Default> Foo<F> {
| - generic parameter `F` is unused
...
LL | pub fn used_substs() -> u32 {
| ^^^^^^^^^^^

error: aborting due to 13 previous errors

2 changes: 2 additions & 0 deletions src/test/ui/polymorphization/type_parameters/functions.rs
Expand Up @@ -34,6 +34,7 @@ pub fn used_argument<T>(_: T) {}
// Function uses generic parameter in substitutions to another function.
#[rustc_polymorphize_error]
pub fn used_substs<T>() {
//~^ ERROR item has unused generic parameters
unused::<T>()
}

Expand Down Expand Up @@ -75,6 +76,7 @@ impl<F: Default> Foo<F> {
// Function uses generic parameter in substitutions to another function.
#[rustc_polymorphize_error]
pub fn used_substs() {
//~^ ERROR item has unused generic parameters
unused::<F>()
}
}
Expand Down
23 changes: 19 additions & 4 deletions src/test/ui/polymorphization/type_parameters/functions.stderr
Expand Up @@ -5,7 +5,13 @@ LL | pub fn unused<T>() {
| ^^^^^^ - generic parameter `T` is unused

error: item has unused generic parameters
--> $DIR/functions.rs:45:12
--> $DIR/functions.rs:36:8
|
LL | pub fn used_substs<T>() {
| ^^^^^^^^^^^ - generic parameter `T` is unused

error: item has unused generic parameters
--> $DIR/functions.rs:46:12
|
LL | impl<F: Default> Foo<F> {
| - generic parameter `F` is unused
Expand All @@ -14,7 +20,7 @@ LL | pub fn unused_impl() {
| ^^^^^^^^^^^

error: item has unused generic parameters
--> $DIR/functions.rs:51:12
--> $DIR/functions.rs:52:12
|
LL | impl<F: Default> Foo<F> {
| - generic parameter `F` is unused
Expand All @@ -23,13 +29,22 @@ LL | pub fn unused_both<G: Default>() {
| ^^^^^^^^^^^ - generic parameter `G` is unused

error: item has unused generic parameters
--> $DIR/functions.rs:63:12
--> $DIR/functions.rs:64:12
|
LL | impl<F: Default> Foo<F> {
| - generic parameter `F` is unused
...
LL | pub fn used_fn<G: Default>() {
| ^^^^^^^

error: aborting due to 4 previous errors
error: item has unused generic parameters
--> $DIR/functions.rs:78:12
|
LL | impl<F: Default> Foo<F> {
| - generic parameter `F` is unused
...
LL | pub fn used_substs() {
| ^^^^^^^^^^^

error: aborting due to 6 previous errors

0 comments on commit 6efacdd

Please sign in to comment.