diff --git a/src/librustc_session/options.rs b/src/librustc_session/options.rs index 6b2097240e2..73696ed35e2 100644 --- a/src/librustc_session/options.rs +++ b/src/librustc_session/options.rs @@ -949,7 +949,7 @@ options! {DebuggingOptions, DebuggingSetter, basic_debugging_options, (default: PLT is disabled if full relro is enabled)"), polonius: bool = (false, parse_bool, [UNTRACKED], "enable polonius-based borrow-checker (default: no)"), - polymorphize: bool = (true, parse_bool, [TRACKED], + polymorphize: bool = (false, parse_bool, [TRACKED], "perform polymorphization analysis"), pre_link_arg: (/* redirected to pre_link_args */) = ((), parse_string_push, [UNTRACKED], "a single extra argument to prepend the linker invocation (can be used several times)"), diff --git a/src/test/codegen-units/item-collection/static-init.rs b/src/test/codegen-units/item-collection/static-init.rs index aebccff01fc..9d79171c4cb 100644 --- a/src/test/codegen-units/item-collection/static-init.rs +++ b/src/test/codegen-units/item-collection/static-init.rs @@ -1,4 +1,4 @@ -// compile-flags:-Zprint-mono-items=eager +// compile-flags:-Zprint-mono-items=eager -Zpolymorphize=on #![feature(start)] diff --git a/src/test/codegen-units/item-collection/trait-method-default-impl.rs b/src/test/codegen-units/item-collection/trait-method-default-impl.rs index abe2d108eae..6cf59fdc396 100644 --- a/src/test/codegen-units/item-collection/trait-method-default-impl.rs +++ b/src/test/codegen-units/item-collection/trait-method-default-impl.rs @@ -1,4 +1,4 @@ -// compile-flags:-Zprint-mono-items=eager +// compile-flags:-Zprint-mono-items=eager -Zpolymorphize=on #![deny(dead_code)] #![feature(start)] diff --git a/src/test/codegen-units/polymorphization/unused_type_parameters.rs b/src/test/codegen-units/polymorphization/unused_type_parameters.rs index dc2ad0559b3..403f68bb170 100644 --- a/src/test/codegen-units/polymorphization/unused_type_parameters.rs +++ b/src/test/codegen-units/polymorphization/unused_type_parameters.rs @@ -1,4 +1,4 @@ -// compile-flags:-Zprint-mono-items=lazy -Copt-level=1 +// compile-flags:-Zpolymorphize=on -Zprint-mono-items=lazy -Copt-level=1 // ignore-tidy-linelength #![crate_type = "rlib"] diff --git a/src/test/ui/polymorphization/const_parameters/closures.rs b/src/test/ui/polymorphization/const_parameters/closures.rs index 7bbcaebea01..f20605e1b9a 100644 --- a/src/test/ui/polymorphization/const_parameters/closures.rs +++ b/src/test/ui/polymorphization/const_parameters/closures.rs @@ -1,4 +1,5 @@ // build-fail +// compile-flags:-Zpolymorphize=on #![feature(const_generics, rustc_attrs)] //~^ WARN the feature `const_generics` is incomplete diff --git a/src/test/ui/polymorphization/const_parameters/closures.stderr b/src/test/ui/polymorphization/const_parameters/closures.stderr index eb872eac74c..266b6e62afd 100644 --- a/src/test/ui/polymorphization/const_parameters/closures.stderr +++ b/src/test/ui/polymorphization/const_parameters/closures.stderr @@ -1,5 +1,5 @@ warning: the feature `const_generics` is incomplete and may not be safe to use and/or cause compiler crashes - --> $DIR/closures.rs:2:12 + --> $DIR/closures.rs:3:12 | LL | #![feature(const_generics, rustc_attrs)] | ^^^^^^^^^^^^^^ @@ -8,7 +8,7 @@ LL | #![feature(const_generics, rustc_attrs)] = note: see issue #44580 for more information error: item has unused generic parameters - --> $DIR/closures.rs:18:19 + --> $DIR/closures.rs:19:19 | LL | pub fn unused() -> usize { | - generic parameter `T` is unused @@ -17,13 +17,13 @@ LL | let add_one = |x: usize| x + 1; | ^^^^^^^^^^^^^^^^ error: item has unused generic parameters - --> $DIR/closures.rs:16:8 + --> $DIR/closures.rs:17:8 | LL | pub fn unused() -> usize { | ^^^^^^ - generic parameter `T` is unused error: item has unused generic parameters - --> $DIR/closures.rs:27:19 + --> $DIR/closures.rs:28:19 | LL | pub fn used_parent() -> usize { | - generic parameter `T` is unused @@ -32,7 +32,7 @@ LL | let add_one = |x: usize| x + 1; | ^^^^^^^^^^^^^^^^ error: item has unused generic parameters - --> $DIR/closures.rs:47:13 + --> $DIR/closures.rs:48:13 | LL | pub fn unused_upvar() -> usize { | - generic parameter `T` is unused diff --git a/src/test/ui/polymorphization/const_parameters/functions.rs b/src/test/ui/polymorphization/const_parameters/functions.rs index 77539b94e48..04c279de29e 100644 --- a/src/test/ui/polymorphization/const_parameters/functions.rs +++ b/src/test/ui/polymorphization/const_parameters/functions.rs @@ -1,4 +1,5 @@ // build-fail +// compile-flags:-Zpolymorphize=on #![feature(const_generics, rustc_attrs)] //~^ WARN the feature `const_generics` is incomplete diff --git a/src/test/ui/polymorphization/const_parameters/functions.stderr b/src/test/ui/polymorphization/const_parameters/functions.stderr index c99a9b788eb..e379e32c1fc 100644 --- a/src/test/ui/polymorphization/const_parameters/functions.stderr +++ b/src/test/ui/polymorphization/const_parameters/functions.stderr @@ -1,5 +1,5 @@ warning: the feature `const_generics` is incomplete and may not be safe to use and/or cause compiler crashes - --> $DIR/functions.rs:2:12 + --> $DIR/functions.rs:3:12 | LL | #![feature(const_generics, rustc_attrs)] | ^^^^^^^^^^^^^^ @@ -8,7 +8,7 @@ LL | #![feature(const_generics, rustc_attrs)] = note: see issue #44580 for more information error: item has unused generic parameters - --> $DIR/functions.rs:14:8 + --> $DIR/functions.rs:15:8 | LL | pub fn unused() { | ^^^^^^ - generic parameter `T` is unused diff --git a/src/test/ui/polymorphization/drop_shims/simple.rs b/src/test/ui/polymorphization/drop_shims/simple.rs index ce56b7a3588..2695dc6d4f1 100644 --- a/src/test/ui/polymorphization/drop_shims/simple.rs +++ b/src/test/ui/polymorphization/drop_shims/simple.rs @@ -1,4 +1,5 @@ // check-pass +// compile-flags:-Zpolymorphize=on pub struct OnDrop(pub F); diff --git a/src/test/ui/polymorphization/drop_shims/transitive.rs b/src/test/ui/polymorphization/drop_shims/transitive.rs index b7ea07b6bc6..c2289117109 100644 --- a/src/test/ui/polymorphization/drop_shims/transitive.rs +++ b/src/test/ui/polymorphization/drop_shims/transitive.rs @@ -1,4 +1,5 @@ // check-pass +// compile-flags:-Zpolymorphize=on pub struct OnDrop(pub F); diff --git a/src/test/ui/polymorphization/generators.rs b/src/test/ui/polymorphization/generators.rs index 1acba7c8bf1..9eb34fb7349 100644 --- a/src/test/ui/polymorphization/generators.rs +++ b/src/test/ui/polymorphization/generators.rs @@ -1,4 +1,5 @@ // build-fail +// compile-flags:-Zpolymorphize=on #![feature(const_generics, generators, generator_trait, rustc_attrs)] //~^ WARN the feature `const_generics` is incomplete diff --git a/src/test/ui/polymorphization/generators.stderr b/src/test/ui/polymorphization/generators.stderr index b3e5a2de027..c59055ba9d6 100644 --- a/src/test/ui/polymorphization/generators.stderr +++ b/src/test/ui/polymorphization/generators.stderr @@ -1,5 +1,5 @@ warning: the feature `const_generics` is incomplete and may not be safe to use and/or cause compiler crashes - --> $DIR/generators.rs:2:12 + --> $DIR/generators.rs:3:12 | LL | #![feature(const_generics, generators, generator_trait, rustc_attrs)] | ^^^^^^^^^^^^^^ @@ -8,7 +8,7 @@ LL | #![feature(const_generics, generators, generator_trait, rustc_attrs)] = note: see issue #44580 for more information error: item has unused generic parameters - --> $DIR/generators.rs:35:5 + --> $DIR/generators.rs:36:5 | LL | pub fn unused_type() -> impl Generator<(), Yield = u32, Return = u32> + Unpin { | - generic parameter `T` is unused @@ -21,13 +21,13 @@ LL | | } | |_____^ error: item has unused generic parameters - --> $DIR/generators.rs:33:8 + --> $DIR/generators.rs:34:8 | LL | pub fn unused_type() -> impl Generator<(), Yield = u32, Return = u32> + Unpin { | ^^^^^^^^^^^ - generic parameter `T` is unused error: item has unused generic parameters - --> $DIR/generators.rs:61:5 + --> $DIR/generators.rs:62:5 | LL | pub fn unused_const() -> impl Generator<(), Yield = u32, Return = u32> + Unpin { | - generic parameter `T` is unused @@ -40,7 +40,7 @@ LL | | } | |_____^ error: item has unused generic parameters - --> $DIR/generators.rs:59:8 + --> $DIR/generators.rs:60:8 | LL | pub fn unused_const() -> impl Generator<(), Yield = u32, Return = u32> + Unpin { | ^^^^^^^^^^^^ - generic parameter `T` is unused diff --git a/src/test/ui/polymorphization/lifetimes.rs b/src/test/ui/polymorphization/lifetimes.rs index 4bde349a336..f26df45230a 100644 --- a/src/test/ui/polymorphization/lifetimes.rs +++ b/src/test/ui/polymorphization/lifetimes.rs @@ -1,4 +1,5 @@ // build-fail +// compile-flags:-Zpolymorphize=on #![feature(rustc_attrs)] // This test checks that the polymorphization analysis doesn't break when the diff --git a/src/test/ui/polymorphization/lifetimes.stderr b/src/test/ui/polymorphization/lifetimes.stderr index 6c85e4f2916..2020256717c 100644 --- a/src/test/ui/polymorphization/lifetimes.stderr +++ b/src/test/ui/polymorphization/lifetimes.stderr @@ -1,11 +1,11 @@ error: item has unused generic parameters - --> $DIR/lifetimes.rs:9:8 + --> $DIR/lifetimes.rs:10:8 | LL | pub fn unused<'a, T>(_: &'a u32) { | ^^^^^^ - generic parameter `T` is unused error: item has unused generic parameters - --> $DIR/lifetimes.rs:16:19 + --> $DIR/lifetimes.rs:17:19 | LL | pub fn used<'a, T: Default>(_: &'a u32) -> u32 { | - generic parameter `T` is unused diff --git a/src/test/ui/polymorphization/normalized_sig_types.rs b/src/test/ui/polymorphization/normalized_sig_types.rs index fa76b7201e8..d732b1071d8 100644 --- a/src/test/ui/polymorphization/normalized_sig_types.rs +++ b/src/test/ui/polymorphization/normalized_sig_types.rs @@ -1,4 +1,5 @@ // build-pass +// compile-flags:-Zpolymorphize=on pub trait ParallelIterator: Sized { fn drive>(_: C) { diff --git a/src/test/ui/polymorphization/predicates.rs b/src/test/ui/polymorphization/predicates.rs index 390ac983aa0..82a94933b47 100644 --- a/src/test/ui/polymorphization/predicates.rs +++ b/src/test/ui/polymorphization/predicates.rs @@ -1,4 +1,5 @@ // build-fail +// compile-flags:-Zpolymorphize=on #![feature(rustc_attrs)] // This test checks that `T` is considered used in `foo`, because it is used in a predicate for diff --git a/src/test/ui/polymorphization/predicates.stderr b/src/test/ui/polymorphization/predicates.stderr index 1b266083463..c23730fc995 100644 --- a/src/test/ui/polymorphization/predicates.stderr +++ b/src/test/ui/polymorphization/predicates.stderr @@ -1,5 +1,5 @@ error: item has unused generic parameters - --> $DIR/predicates.rs:8:4 + --> $DIR/predicates.rs:9:4 | LL | fn bar() { | ^^^ - generic parameter `I` is unused diff --git a/src/test/ui/polymorphization/type_parameters/closures.rs b/src/test/ui/polymorphization/type_parameters/closures.rs index 1fbe13380b5..07ab1355a47 100644 --- a/src/test/ui/polymorphization/type_parameters/closures.rs +++ b/src/test/ui/polymorphization/type_parameters/closures.rs @@ -1,4 +1,5 @@ // build-fail +// compile-flags:-Zpolymorphize=on #![feature(stmt_expr_attributes, rustc_attrs)] // This test checks that the polymorphization analysis correctly detects unused type diff --git a/src/test/ui/polymorphization/type_parameters/closures.stderr b/src/test/ui/polymorphization/type_parameters/closures.stderr index d68e6e25a1e..417feebbc55 100644 --- a/src/test/ui/polymorphization/type_parameters/closures.stderr +++ b/src/test/ui/polymorphization/type_parameters/closures.stderr @@ -1,5 +1,5 @@ error: item has unused generic parameters - --> $DIR/closures.rs:18:19 + --> $DIR/closures.rs:19:19 | LL | pub fn unused() -> u32 { | - generic parameter `T` is unused @@ -8,13 +8,13 @@ LL | let add_one = |x: u32| x + 1; | ^^^^^^^^^^^^^^ error: item has unused generic parameters - --> $DIR/closures.rs:15:8 + --> $DIR/closures.rs:16:8 | LL | pub fn unused() -> u32 { | ^^^^^^ - generic parameter `T` is unused error: item has unused generic parameters - --> $DIR/closures.rs:27:19 + --> $DIR/closures.rs:28:19 | LL | pub fn used_parent() -> u32 { | - generic parameter `T` is unused @@ -23,7 +23,7 @@ LL | let add_one = |x: u32| x + 1; | ^^^^^^^^^^^^^^ error: item has unused generic parameters - --> $DIR/closures.rs:93:23 + --> $DIR/closures.rs:94:23 | LL | impl Foo { | - generic parameter `F` is unused @@ -35,7 +35,7 @@ LL | let add_one = |x: u32| x + 1; | ^^^^^^^^^^^^^^ error: item has unused generic parameters - --> $DIR/closures.rs:91:12 + --> $DIR/closures.rs:92:12 | LL | impl Foo { | - generic parameter `F` is unused @@ -44,7 +44,7 @@ LL | pub fn unused_all() -> u32 { | ^^^^^^^^^^ - generic parameter `G` is unused error: item has unused generic parameters - --> $DIR/closures.rs:127:23 + --> $DIR/closures.rs:128:23 | LL | pub fn used_impl() -> u32 { | - generic parameter `G` is unused @@ -58,13 +58,13 @@ LL | | }; | |_________^ error: item has unused generic parameters - --> $DIR/closures.rs:125:12 + --> $DIR/closures.rs:126:12 | LL | pub fn used_impl() -> u32 { | ^^^^^^^^^ - generic parameter `G` is unused error: item has unused generic parameters - --> $DIR/closures.rs:114:23 + --> $DIR/closures.rs:115:23 | LL | impl Foo { | - generic parameter `F` is unused @@ -78,7 +78,7 @@ LL | | }; | |_________^ error: item has unused generic parameters - --> $DIR/closures.rs:112:12 + --> $DIR/closures.rs:113:12 | LL | impl Foo { | - generic parameter `F` is unused diff --git a/src/test/ui/polymorphization/type_parameters/functions.rs b/src/test/ui/polymorphization/type_parameters/functions.rs index 38f10148c2c..aad957e1dd3 100644 --- a/src/test/ui/polymorphization/type_parameters/functions.rs +++ b/src/test/ui/polymorphization/type_parameters/functions.rs @@ -1,4 +1,5 @@ // build-fail +// compile-flags:-Zpolymorphize=on #![feature(rustc_attrs)] // This test checks that the polymorphization analysis correctly detects unused type diff --git a/src/test/ui/polymorphization/type_parameters/functions.stderr b/src/test/ui/polymorphization/type_parameters/functions.stderr index be4c6576e96..d629ff7bb4d 100644 --- a/src/test/ui/polymorphization/type_parameters/functions.stderr +++ b/src/test/ui/polymorphization/type_parameters/functions.stderr @@ -1,11 +1,11 @@ error: item has unused generic parameters - --> $DIR/functions.rs:13:8 + --> $DIR/functions.rs:14:8 | LL | pub fn unused() { | ^^^^^^ - generic parameter `T` is unused error: item has unused generic parameters - --> $DIR/functions.rs:44:12 + --> $DIR/functions.rs:45:12 | LL | impl Foo { | - generic parameter `F` is unused @@ -14,7 +14,7 @@ LL | pub fn unused_impl() { | ^^^^^^^^^^^ error: item has unused generic parameters - --> $DIR/functions.rs:50:12 + --> $DIR/functions.rs:51:12 | LL | impl Foo { | - generic parameter `F` is unused @@ -23,7 +23,7 @@ LL | pub fn unused_both() { | ^^^^^^^^^^^ - generic parameter `G` is unused error: item has unused generic parameters - --> $DIR/functions.rs:62:12 + --> $DIR/functions.rs:63:12 | LL | impl Foo { | - generic parameter `F` is unused diff --git a/src/test/ui/polymorphization/unsized_cast.rs b/src/test/ui/polymorphization/unsized_cast.rs index d2f3d4f13cd..b8facc16070 100644 --- a/src/test/ui/polymorphization/unsized_cast.rs +++ b/src/test/ui/polymorphization/unsized_cast.rs @@ -1,4 +1,5 @@ // build-fail +// compile-flags:-Zpolymorphize=on #![feature(fn_traits, rustc_attrs, unboxed_closures)] // This test checks that the polymorphization analysis considers a closure diff --git a/src/test/ui/polymorphization/unsized_cast.stderr b/src/test/ui/polymorphization/unsized_cast.stderr index b8b96bbdf15..d4727acca9a 100644 --- a/src/test/ui/polymorphization/unsized_cast.stderr +++ b/src/test/ui/polymorphization/unsized_cast.stderr @@ -1,5 +1,5 @@ error: item has unused generic parameters - --> $DIR/unsized_cast.rs:10:18 + --> $DIR/unsized_cast.rs:11:18 | LL | fn foo() { | - generic parameter `T` is unused @@ -8,7 +8,7 @@ LL | (|| Box::new(|| {}) as Box)(); | ^^^^^ error: item has unused generic parameters - --> $DIR/unsized_cast.rs:10:5 + --> $DIR/unsized_cast.rs:11:5 | LL | fn foo() { | - generic parameter `T` is unused @@ -17,7 +17,7 @@ LL | (|| Box::new(|| {}) as Box)(); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: item has unused generic parameters - --> $DIR/unsized_cast.rs:20:15 + --> $DIR/unsized_cast.rs:21:15 | LL | fn foo2() { | - generic parameter `T` is unused