From cf2dff2b1e3fa55fa5415d524200070d0d7aacfe Mon Sep 17 00:00:00 2001 From: Albert Larsan <74931857+albertlarsan68@users.noreply.github.com> Date: Thu, 5 Jan 2023 09:13:28 +0100 Subject: Move /src/test to /tests --- .../polymorphization/unused_type_parameters.rs | 322 --------------------- 1 file changed, 322 deletions(-) delete mode 100644 src/test/codegen-units/polymorphization/unused_type_parameters.rs (limited to 'src/test/codegen-units/polymorphization') diff --git a/src/test/codegen-units/polymorphization/unused_type_parameters.rs b/src/test/codegen-units/polymorphization/unused_type_parameters.rs deleted file mode 100644 index c2e06d067dc..00000000000 --- a/src/test/codegen-units/polymorphization/unused_type_parameters.rs +++ /dev/null @@ -1,322 +0,0 @@ -// compile-flags:-Zpolymorphize=on -Zprint-mono-items=lazy -Copt-level=1 - -#![crate_type = "rlib"] - -// This test checks that the polymorphization analysis correctly reduces the -// generated mono items. - -mod functions { - // Function doesn't have any type parameters to be unused. - pub fn no_parameters() {} - -//~ MONO_ITEM fn functions::no_parameters - - // Function has an unused type parameter. - pub fn unused() { - } - -//~ MONO_ITEM fn functions::unused:: - - // Function uses type parameter in value of a binding. - pub fn used_binding_value() { - let _: T = Default::default(); - } - -//~ MONO_ITEM fn functions::used_binding_value:: -//~ MONO_ITEM fn functions::used_binding_value:: - - // Function uses type parameter in type of a binding. - pub fn used_binding_type() { - let _: Option = None; - } - -//~ MONO_ITEM fn functions::used_binding_type:: -//~ MONO_ITEM fn functions::used_binding_type:: - - // Function uses type parameter in argument. - pub fn used_argument(_: T) { - } - -//~ MONO_ITEM fn functions::used_argument:: -//~ MONO_ITEM fn functions::used_argument:: -// - // Function uses type parameter in substitutions to another function. - pub fn used_substs() { - unused::() - } - -//~ MONO_ITEM fn functions::used_substs:: -//~ MONO_ITEM fn functions::used_substs:: -} - - -mod closures { - // Function doesn't have any type parameters to be unused. - pub fn no_parameters() { - let _ = || {}; - } - -//~ MONO_ITEM fn closures::no_parameters - - // Function has an unused type parameter in parent and closure. - pub fn unused() -> u32 { - let add_one = |x: u32| x + 1; - add_one(3) - } - -//~ MONO_ITEM fn closures::unused::::{closure#0} -//~ MONO_ITEM fn closures::unused:: - - // Function has an unused type parameter in closure, but not in parent. - pub fn used_parent() -> u32 { - let _: T = Default::default(); - let add_one = |x: u32| x + 1; - add_one(3) - } - -//~ MONO_ITEM fn closures::used_parent::::{closure#0} -//~ MONO_ITEM fn closures::used_parent:: -//~ MONO_ITEM fn closures::used_parent:: - - // Function uses type parameter in value of a binding in closure. - pub fn used_binding_value() -> T { - let x = || { - let y: T = Default::default(); - y - }; - - x() - } - -//~ MONO_ITEM fn closures::used_binding_value::::{closure#0} -//~ MONO_ITEM fn closures::used_binding_value::::{closure#0} -//~ MONO_ITEM fn closures::used_binding_value:: -//~ MONO_ITEM fn closures::used_binding_value:: - - // Function uses type parameter in type of a binding in closure. - pub fn used_binding_type() -> Option { - let x = || { - let y: Option = None; - y - }; - - x() - } - -//~ MONO_ITEM fn closures::used_binding_type::::{closure#0} -//~ MONO_ITEM fn closures::used_binding_type::::{closure#0} -//~ MONO_ITEM fn closures::used_binding_type:: -//~ MONO_ITEM fn closures::used_binding_type:: - - // Function and closure uses type parameter in argument. - pub fn used_argument(t: T) -> u32 { - let x = |_: T| 3; - x(t) - } - -//~ MONO_ITEM fn closures::used_argument::::{closure#0} -//~ MONO_ITEM fn closures::used_argument::::{closure#0} -//~ MONO_ITEM fn closures::used_argument:: -//~ MONO_ITEM fn closures::used_argument:: - - // Closure uses type parameter in argument. - pub fn used_argument_closure() -> u32 { - let t: T = Default::default(); - let x = |_: T| 3; - x(t) - } - -//~ MONO_ITEM fn closures::used_argument_closure::::{closure#0} -//~ MONO_ITEM fn closures::used_argument_closure::::{closure#0} -//~ MONO_ITEM fn closures::used_argument_closure:: -//~ MONO_ITEM fn closures::used_argument_closure:: - - // Closure uses type parameter as upvar. - pub fn used_upvar() -> T { - let x: T = Default::default(); - let y = || x; - y() - } - -//~ MONO_ITEM fn closures::used_upvar::::{closure#0} -//~ MONO_ITEM fn closures::used_upvar::::{closure#0} -//~ MONO_ITEM fn closures::used_upvar:: -//~ MONO_ITEM fn closures::used_upvar:: - - // Closure uses type parameter in substitutions to another function. - pub fn used_substs() { - let x = || super::functions::unused::(); - x() - } - -//~ MONO_ITEM fn closures::used_substs::::{closure#0} -//~ MONO_ITEM fn closures::used_substs::::{closure#0} -//~ MONO_ITEM fn closures::used_substs:: -//~ MONO_ITEM fn closures::used_substs:: -} - -mod methods { - pub struct Foo(F); - - impl Foo { - // Function has an unused type parameter from impl. - pub fn unused_impl() { - } - -//~ MONO_ITEM fn methods::Foo::::unused_impl - - // Function has an unused type parameter from impl and fn. - pub fn unused_both() { - } - -//~ MONO_ITEM fn methods::Foo::::unused_both:: - - // Function uses type parameter from impl. - pub fn used_impl() { - let _: F = Default::default(); - } - -//~ MONO_ITEM fn methods::Foo::::used_impl -//~ MONO_ITEM fn methods::Foo::::used_impl - - // Function uses type parameter from impl. - pub fn used_fn() { - let _: G = Default::default(); - } - -//~ MONO_ITEM fn methods::Foo::::used_fn:: -//~ MONO_ITEM fn methods::Foo::::used_fn:: - - // Function uses type parameter from impl. - pub fn used_both() { - let _: F = Default::default(); - let _: G = Default::default(); - } - -//~ MONO_ITEM fn methods::Foo::::used_both:: -//~ MONO_ITEM fn methods::Foo::::used_both:: - - // Function uses type parameter in substitutions to another function. - pub fn used_substs() { - super::functions::unused::() - } - -//~ MONO_ITEM fn methods::Foo::::used_substs -//~ MONO_ITEM fn methods::Foo::::used_substs - - // Function has an unused type parameter from impl and fn. - pub fn closure_unused_all() -> u32 { - let add_one = |x: u32| x + 1; - add_one(3) - } - -//~ MONO_ITEM fn methods::Foo::::closure_unused_all::::{closure#0} -//~ MONO_ITEM fn methods::Foo::::closure_unused_all:: - - // Function uses type parameter from impl and fn in closure. - pub fn closure_used_both() -> u32 { - let add_one = |x: u32| { - let _: F = Default::default(); - let _: G = Default::default(); - x + 1 - }; - - add_one(3) - } - -//~ MONO_ITEM fn methods::Foo::::closure_used_both::::{closure#0} -//~ MONO_ITEM fn methods::Foo::::closure_used_both::::{closure#0} -//~ MONO_ITEM fn methods::Foo::::closure_used_both:: -//~ MONO_ITEM fn methods::Foo::::closure_used_both:: - - // Function uses type parameter from fn in closure. - pub fn closure_used_fn() -> u32 { - let add_one = |x: u32| { - let _: G = Default::default(); - x + 1 - }; - - add_one(3) - } - -//~ MONO_ITEM fn methods::Foo::::closure_used_fn::::{closure#0} -//~ MONO_ITEM fn methods::Foo::::closure_used_fn::::{closure#0} -//~ MONO_ITEM fn methods::Foo::::closure_used_fn:: -//~ MONO_ITEM fn methods::Foo::::closure_used_fn:: - - // Function uses type parameter from impl in closure. - pub fn closure_used_impl() -> u32 { - let add_one = |x: u32| { - let _: F = Default::default(); - x + 1 - }; - - add_one(3) - } - -//~ MONO_ITEM fn methods::Foo::::closure_used_impl::::{closure#0} -//~ MONO_ITEM fn methods::Foo::::closure_used_impl::::{closure#0} -//~ MONO_ITEM fn methods::Foo::::closure_used_impl:: -//~ MONO_ITEM fn methods::Foo::::closure_used_impl:: - - // Closure uses type parameter in substitutions to another function. - pub fn closure_used_substs() { - let x = || super::functions::unused::(); - x() - } - -//~ MONO_ITEM fn methods::Foo::::closure_used_substs::{closure#0} -//~ MONO_ITEM fn methods::Foo::::closure_used_substs::{closure#0} -//~ MONO_ITEM fn methods::Foo::::closure_used_substs -//~ MONO_ITEM fn methods::Foo::::closure_used_substs - } -} - - - -fn dispatch() { - functions::no_parameters(); - functions::unused::(); - functions::used_binding_value::(); - functions::used_binding_type::(); - functions::used_argument::(Default::default()); - functions::used_substs::(); - - closures::no_parameters(); - let _ = closures::unused::(); - let _ = closures::used_parent::(); - let _ = closures::used_binding_value::(); - let _ = closures::used_binding_type::(); - let _ = closures::used_argument::(Default::default()); - let _ = closures::used_argument_closure::(); - let _ = closures::used_upvar::(); - let _ = closures::used_substs::(); - - methods::Foo::::unused_impl(); - methods::Foo::::unused_both::(); - methods::Foo::::used_impl(); - methods::Foo::::used_fn::(); - methods::Foo::::used_both::(); - methods::Foo::::used_substs(); - let _ = methods::Foo::::closure_unused_all::(); - let _ = methods::Foo::::closure_used_both::(); - let _ = methods::Foo::::closure_used_impl::(); - let _ = methods::Foo::::closure_used_fn::(); - let _ = methods::Foo::::closure_used_substs(); -} - -//~ MONO_ITEM fn dispatch:: -//~ MONO_ITEM fn dispatch:: - -pub fn foo() { - // Generate two copies of each function to check that where the type parameter is unused, - // there is only a single copy. - dispatch::(); - dispatch::(); -} - -//~ MONO_ITEM fn foo @@ unused_type_parameters-cgu.0[External] - -// These are all the items that aren't relevant to the test. -//~ MONO_ITEM fn ::default -//~ MONO_ITEM fn ::default -- cgit 1.4.1-3-g733a5