From 75d33cfa649610d4d8908bac2491a2ccced525f5 Mon Sep 17 00:00:00 2001 From: mark Date: Mon, 25 Jun 2018 22:04:08 -0500 Subject: [PATCH] add edition compiletest header + fix tests --- .../edition-raw-pointer-method-2015.rs | 2 +- .../edition-raw-pointer-method-2018.rs | 2 +- .../non-existent-1.rs | 2 +- .../non-existent-2.rs | 2 +- .../non-existent-3.rs | 2 +- .../single-segment.rs | 2 +- src/test/run-pass/async-await.rs | 2 +- .../run-pass/auxiliary/edition-kw-macro-2015.rs | 2 +- .../run-pass/auxiliary/edition-kw-macro-2018.rs | 2 +- src/test/run-pass/edition-keywords-2015-2015.rs | 2 +- src/test/run-pass/edition-keywords-2015-2018.rs | 2 +- src/test/run-pass/edition-keywords-2018-2015.rs | 2 +- src/test/run-pass/edition-keywords-2018-2018.rs | 2 +- .../rfc-2126-extern-absolute-paths/basic.rs | 2 +- .../rfc-2126-extern-absolute-paths/test.rs | 3 ++- src/test/ui/async-fn-multiple-lifetimes.rs | 2 +- src/test/ui/auxiliary/edition-kw-macro-2015.rs | 2 +- src/test/ui/auxiliary/edition-kw-macro-2018.rs | 2 +- .../ui/edition-keywords-2015-2015-expansion.rs | 2 +- src/test/ui/edition-keywords-2015-2015-parsing.rs | 2 +- .../ui/edition-keywords-2015-2018-expansion.rs | 2 +- src/test/ui/edition-keywords-2015-2018-parsing.rs | 2 +- .../ui/edition-keywords-2018-2015-expansion.rs | 2 +- src/test/ui/edition-keywords-2018-2015-parsing.rs | 2 +- .../ui/edition-keywords-2018-2018-expansion.rs | 2 +- src/test/ui/edition-keywords-2018-2018-parsing.rs | 2 +- .../ui/feature-gate-async-await-2015-edition.rs | 2 +- src/test/ui/feature-gate-async-await.rs | 3 ++- src/test/ui/feature-gate-async-await.stderr | 6 +++--- src/test/ui/lint-anon-param-edition.fixed | 2 +- src/test/ui/lint-anon-param-edition.rs | 2 +- src/test/ui/no-args-non-move-async-closure.rs | 2 +- src/tools/compiletest/src/header.rs | 14 +++++++++++--- src/tools/compiletest/src/runtest.rs | 1 + 34 files changed, 48 insertions(+), 37 deletions(-) diff --git a/src/test/compile-fail/edition-raw-pointer-method-2015.rs b/src/test/compile-fail/edition-raw-pointer-method-2015.rs index b304443f63145..4ba44fa54d8cd 100644 --- a/src/test/compile-fail/edition-raw-pointer-method-2015.rs +++ b/src/test/compile-fail/edition-raw-pointer-method-2015.rs @@ -9,7 +9,7 @@ // except according to those terms. // ignore-tidy-linelength -// compile-flags: --edition=2015 -Zunstable-options +// edition:2015 // tests that editions work with the tyvar warning-turned-error diff --git a/src/test/compile-fail/edition-raw-pointer-method-2018.rs b/src/test/compile-fail/edition-raw-pointer-method-2018.rs index d0cf81d59cf37..c8548ed35b972 100644 --- a/src/test/compile-fail/edition-raw-pointer-method-2018.rs +++ b/src/test/compile-fail/edition-raw-pointer-method-2018.rs @@ -9,7 +9,7 @@ // except according to those terms. // ignore-tidy-linelength -// compile-flags: --edition=2018 -Zunstable-options +// edition:2018 // tests that editions work with the tyvar warning-turned-error diff --git a/src/test/compile-fail/rfc-2126-extern-absolute-paths/non-existent-1.rs b/src/test/compile-fail/rfc-2126-extern-absolute-paths/non-existent-1.rs index fcf4714ba9695..e04bb27f43500 100644 --- a/src/test/compile-fail/rfc-2126-extern-absolute-paths/non-existent-1.rs +++ b/src/test/compile-fail/rfc-2126-extern-absolute-paths/non-existent-1.rs @@ -8,7 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// compile-flags: --edition=2018 -Zunstable-options +// edition:2018 #![feature(extern_absolute_paths)] diff --git a/src/test/compile-fail/rfc-2126-extern-absolute-paths/non-existent-2.rs b/src/test/compile-fail/rfc-2126-extern-absolute-paths/non-existent-2.rs index c256c5592c269..bebf0236bb4d0 100644 --- a/src/test/compile-fail/rfc-2126-extern-absolute-paths/non-existent-2.rs +++ b/src/test/compile-fail/rfc-2126-extern-absolute-paths/non-existent-2.rs @@ -8,7 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// compile-flags: --edition=2018 -Zunstable-options +// edition:2018 #![feature(extern_absolute_paths)] diff --git a/src/test/compile-fail/rfc-2126-extern-absolute-paths/non-existent-3.rs b/src/test/compile-fail/rfc-2126-extern-absolute-paths/non-existent-3.rs index 837dc617b3ad0..5906a0719c842 100644 --- a/src/test/compile-fail/rfc-2126-extern-absolute-paths/non-existent-3.rs +++ b/src/test/compile-fail/rfc-2126-extern-absolute-paths/non-existent-3.rs @@ -8,7 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// compile-flags: --edition=2018 -Zunstable-options +// edition:2018 #![feature(extern_absolute_paths)] diff --git a/src/test/compile-fail/rfc-2126-extern-absolute-paths/single-segment.rs b/src/test/compile-fail/rfc-2126-extern-absolute-paths/single-segment.rs index 9b7baa0016344..7111176dbd9af 100644 --- a/src/test/compile-fail/rfc-2126-extern-absolute-paths/single-segment.rs +++ b/src/test/compile-fail/rfc-2126-extern-absolute-paths/single-segment.rs @@ -9,7 +9,7 @@ // except according to those terms. // aux-build:xcrate.rs -// compile-flags: --edition=2018 -Zunstable-options +// edition:2018 #![feature(crate_in_paths)] #![feature(extern_absolute_paths)] diff --git a/src/test/run-pass/async-await.rs b/src/test/run-pass/async-await.rs index 817db4bb79ec3..8b649f6ef7bbd 100644 --- a/src/test/run-pass/async-await.rs +++ b/src/test/run-pass/async-await.rs @@ -8,7 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// compile-flags: --edition=2018 +// edition:2018 #![feature(arbitrary_self_types, async_await, await_macro, futures_api, pin)] diff --git a/src/test/run-pass/auxiliary/edition-kw-macro-2015.rs b/src/test/run-pass/auxiliary/edition-kw-macro-2015.rs index 9127c8e350a8c..69952e9f90af6 100644 --- a/src/test/run-pass/auxiliary/edition-kw-macro-2015.rs +++ b/src/test/run-pass/auxiliary/edition-kw-macro-2015.rs @@ -8,7 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// compile-flags: --edition=2015 +// edition:2015 #![feature(raw_identifiers)] diff --git a/src/test/run-pass/auxiliary/edition-kw-macro-2018.rs b/src/test/run-pass/auxiliary/edition-kw-macro-2018.rs index 4fef77d67ea71..415988586a066 100644 --- a/src/test/run-pass/auxiliary/edition-kw-macro-2018.rs +++ b/src/test/run-pass/auxiliary/edition-kw-macro-2018.rs @@ -8,7 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// compile-flags: --edition=2018 +// edition:2018 #![feature(raw_identifiers)] diff --git a/src/test/run-pass/edition-keywords-2015-2015.rs b/src/test/run-pass/edition-keywords-2015-2015.rs index 41480bb978ec2..73869e63de7c4 100644 --- a/src/test/run-pass/edition-keywords-2015-2015.rs +++ b/src/test/run-pass/edition-keywords-2015-2015.rs @@ -8,7 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// compile-flags: --edition=2015 +// edition:2015 // aux-build:edition-kw-macro-2015.rs #![feature(raw_identifiers)] diff --git a/src/test/run-pass/edition-keywords-2015-2018.rs b/src/test/run-pass/edition-keywords-2015-2018.rs index 78835d510639f..0a1c6505854c9 100644 --- a/src/test/run-pass/edition-keywords-2015-2018.rs +++ b/src/test/run-pass/edition-keywords-2015-2018.rs @@ -8,7 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// compile-flags: --edition=2015 +// edition:2015 // aux-build:edition-kw-macro-2018.rs #![feature(raw_identifiers)] diff --git a/src/test/run-pass/edition-keywords-2018-2015.rs b/src/test/run-pass/edition-keywords-2018-2015.rs index 46d5f222cbb31..4c22667d0bf43 100644 --- a/src/test/run-pass/edition-keywords-2018-2015.rs +++ b/src/test/run-pass/edition-keywords-2018-2015.rs @@ -8,7 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// compile-flags: --edition=2018 +// edition:2018 // aux-build:edition-kw-macro-2015.rs #![feature(raw_identifiers)] diff --git a/src/test/run-pass/edition-keywords-2018-2018.rs b/src/test/run-pass/edition-keywords-2018-2018.rs index 06482988937b6..2a98b904da5db 100644 --- a/src/test/run-pass/edition-keywords-2018-2018.rs +++ b/src/test/run-pass/edition-keywords-2018-2018.rs @@ -8,7 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// compile-flags: --edition=2018 +// edition:2018 // aux-build:edition-kw-macro-2018.rs #![feature(raw_identifiers)] diff --git a/src/test/run-pass/rfc-2126-extern-absolute-paths/basic.rs b/src/test/run-pass/rfc-2126-extern-absolute-paths/basic.rs index bbe066481a8b1..dfa583415f7b6 100644 --- a/src/test/run-pass/rfc-2126-extern-absolute-paths/basic.rs +++ b/src/test/run-pass/rfc-2126-extern-absolute-paths/basic.rs @@ -9,7 +9,7 @@ // except according to those terms. // aux-build:xcrate.rs -// compile-flags: --edition=2018 -Zunstable-options +// edition:2018 #![feature(extern_absolute_paths)] diff --git a/src/test/run-pass/rfc-2126-extern-absolute-paths/test.rs b/src/test/run-pass/rfc-2126-extern-absolute-paths/test.rs index ead462cf0d2ca..6317dc17652cd 100644 --- a/src/test/run-pass/rfc-2126-extern-absolute-paths/test.rs +++ b/src/test/run-pass/rfc-2126-extern-absolute-paths/test.rs @@ -12,7 +12,8 @@ // // Regression test for #47075. -// compile-flags: --test --edition=2018 -Zunstable-options +// edition:2018 +// compile-flags: --test #![feature(extern_absolute_paths)] diff --git a/src/test/ui/async-fn-multiple-lifetimes.rs b/src/test/ui/async-fn-multiple-lifetimes.rs index ce062ded7f73f..aab4974e2e7a1 100644 --- a/src/test/ui/async-fn-multiple-lifetimes.rs +++ b/src/test/ui/async-fn-multiple-lifetimes.rs @@ -8,7 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// compile-flags: --edition=2018 +// edition:2018 #![feature(arbitrary_self_types, async_await, await_macro, futures_api, pin)] diff --git a/src/test/ui/auxiliary/edition-kw-macro-2015.rs b/src/test/ui/auxiliary/edition-kw-macro-2015.rs index 9127c8e350a8c..69952e9f90af6 100644 --- a/src/test/ui/auxiliary/edition-kw-macro-2015.rs +++ b/src/test/ui/auxiliary/edition-kw-macro-2015.rs @@ -8,7 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// compile-flags: --edition=2015 +// edition:2015 #![feature(raw_identifiers)] diff --git a/src/test/ui/auxiliary/edition-kw-macro-2018.rs b/src/test/ui/auxiliary/edition-kw-macro-2018.rs index 4fef77d67ea71..415988586a066 100644 --- a/src/test/ui/auxiliary/edition-kw-macro-2018.rs +++ b/src/test/ui/auxiliary/edition-kw-macro-2018.rs @@ -8,7 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// compile-flags: --edition=2018 +// edition:2018 #![feature(raw_identifiers)] diff --git a/src/test/ui/edition-keywords-2015-2015-expansion.rs b/src/test/ui/edition-keywords-2015-2015-expansion.rs index b8a1994a10575..349ab3e27ad32 100644 --- a/src/test/ui/edition-keywords-2015-2015-expansion.rs +++ b/src/test/ui/edition-keywords-2015-2015-expansion.rs @@ -8,7 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// compile-flags: --edition=2015 +// edition:2015 // aux-build:edition-kw-macro-2015.rs // compile-pass diff --git a/src/test/ui/edition-keywords-2015-2015-parsing.rs b/src/test/ui/edition-keywords-2015-2015-parsing.rs index 1fb91ca006cc7..08cba2d2908a6 100644 --- a/src/test/ui/edition-keywords-2015-2015-parsing.rs +++ b/src/test/ui/edition-keywords-2015-2015-parsing.rs @@ -8,7 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// compile-flags: --edition=2015 +// edition:2015 // aux-build:edition-kw-macro-2015.rs #![feature(raw_identifiers)] diff --git a/src/test/ui/edition-keywords-2015-2018-expansion.rs b/src/test/ui/edition-keywords-2015-2018-expansion.rs index bc14c104c49fc..082eb8d89f9f1 100644 --- a/src/test/ui/edition-keywords-2015-2018-expansion.rs +++ b/src/test/ui/edition-keywords-2015-2018-expansion.rs @@ -8,7 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// compile-flags: --edition=2015 +// edition:2015 // aux-build:edition-kw-macro-2018.rs #![feature(raw_identifiers)] diff --git a/src/test/ui/edition-keywords-2015-2018-parsing.rs b/src/test/ui/edition-keywords-2015-2018-parsing.rs index 0b680eb16c7f4..337d6be6bbcd8 100644 --- a/src/test/ui/edition-keywords-2015-2018-parsing.rs +++ b/src/test/ui/edition-keywords-2015-2018-parsing.rs @@ -8,7 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// compile-flags: --edition=2015 +// edition:2015 // aux-build:edition-kw-macro-2018.rs #![feature(raw_identifiers)] diff --git a/src/test/ui/edition-keywords-2018-2015-expansion.rs b/src/test/ui/edition-keywords-2018-2015-expansion.rs index 6f85f427eb054..6e2073e0e494a 100644 --- a/src/test/ui/edition-keywords-2018-2015-expansion.rs +++ b/src/test/ui/edition-keywords-2018-2015-expansion.rs @@ -8,7 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// compile-flags: --edition=2018 +// edition:2018 // aux-build:edition-kw-macro-2015.rs // compile-pass diff --git a/src/test/ui/edition-keywords-2018-2015-parsing.rs b/src/test/ui/edition-keywords-2018-2015-parsing.rs index 02dc8c8795675..713da57f7e2c7 100644 --- a/src/test/ui/edition-keywords-2018-2015-parsing.rs +++ b/src/test/ui/edition-keywords-2018-2015-parsing.rs @@ -8,7 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// compile-flags: --edition=2018 +// edition:2018 // aux-build:edition-kw-macro-2015.rs #![feature(raw_identifiers)] diff --git a/src/test/ui/edition-keywords-2018-2018-expansion.rs b/src/test/ui/edition-keywords-2018-2018-expansion.rs index ef7f63e225ce1..50db4202e98d3 100644 --- a/src/test/ui/edition-keywords-2018-2018-expansion.rs +++ b/src/test/ui/edition-keywords-2018-2018-expansion.rs @@ -8,7 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// compile-flags: --edition=2018 +// edition:2018 // aux-build:edition-kw-macro-2018.rs #![feature(raw_identifiers)] diff --git a/src/test/ui/edition-keywords-2018-2018-parsing.rs b/src/test/ui/edition-keywords-2018-2018-parsing.rs index f9b4d0e18c14b..263ec95caa7d6 100644 --- a/src/test/ui/edition-keywords-2018-2018-parsing.rs +++ b/src/test/ui/edition-keywords-2018-2018-parsing.rs @@ -8,7 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// compile-flags: --edition=2018 +// edition:2018 // aux-build:edition-kw-macro-2018.rs #![feature(raw_identifiers)] diff --git a/src/test/ui/feature-gate-async-await-2015-edition.rs b/src/test/ui/feature-gate-async-await-2015-edition.rs index b1dd6a77e976a..5b865e9c1c7cb 100644 --- a/src/test/ui/feature-gate-async-await-2015-edition.rs +++ b/src/test/ui/feature-gate-async-await-2015-edition.rs @@ -8,7 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// compile-flags: --edition=2015 +// edition:2015 #![feature(futures_api)] diff --git a/src/test/ui/feature-gate-async-await.rs b/src/test/ui/feature-gate-async-await.rs index 971b75c6dd036..be34842dea3a6 100644 --- a/src/test/ui/feature-gate-async-await.rs +++ b/src/test/ui/feature-gate-async-await.rs @@ -8,7 +8,8 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// compile-flags: --edition=2018 +// edition:2018 + #![feature(futures_api)] async fn foo() {} //~ ERROR async fn is unstable diff --git a/src/test/ui/feature-gate-async-await.stderr b/src/test/ui/feature-gate-async-await.stderr index fdee6e205750b..79ed5c4d008b1 100644 --- a/src/test/ui/feature-gate-async-await.stderr +++ b/src/test/ui/feature-gate-async-await.stderr @@ -1,5 +1,5 @@ error[E0658]: async fn is unstable (see issue #50547) - --> $DIR/feature-gate-async-await.rs:14:1 + --> $DIR/feature-gate-async-await.rs:15:1 | LL | async fn foo() {} //~ ERROR async fn is unstable | ^^^^^^^^^^^^^^^^^ @@ -7,7 +7,7 @@ LL | async fn foo() {} //~ ERROR async fn is unstable = help: add #![feature(async_await)] to the crate attributes to enable error[E0658]: async blocks are unstable (see issue #50547) - --> $DIR/feature-gate-async-await.rs:17:13 + --> $DIR/feature-gate-async-await.rs:18:13 | LL | let _ = async {}; //~ ERROR async blocks are unstable | ^^^^^^^^ @@ -15,7 +15,7 @@ LL | let _ = async {}; //~ ERROR async blocks are unstable = help: add #![feature(async_await)] to the crate attributes to enable error[E0658]: async closures are unstable (see issue #50547) - --> $DIR/feature-gate-async-await.rs:18:13 + --> $DIR/feature-gate-async-await.rs:19:13 | LL | let _ = async || {}; //~ ERROR async closures are unstable | ^^^^^^^^^^^ diff --git a/src/test/ui/lint-anon-param-edition.fixed b/src/test/ui/lint-anon-param-edition.fixed index de223d9ccf7b6..c4379b496f8d4 100644 --- a/src/test/ui/lint-anon-param-edition.fixed +++ b/src/test/ui/lint-anon-param-edition.fixed @@ -11,7 +11,7 @@ // tests that the anonymous_parameters lint is warn-by-default on the 2018 edition // compile-pass -// compile-flags: --edition=2018 +// edition:2018 // run-rustfix trait Foo { diff --git a/src/test/ui/lint-anon-param-edition.rs b/src/test/ui/lint-anon-param-edition.rs index 35406806df99c..13eb5dfd816ab 100644 --- a/src/test/ui/lint-anon-param-edition.rs +++ b/src/test/ui/lint-anon-param-edition.rs @@ -11,7 +11,7 @@ // tests that the anonymous_parameters lint is warn-by-default on the 2018 edition // compile-pass -// compile-flags: --edition=2018 +// edition:2018 // run-rustfix trait Foo { diff --git a/src/test/ui/no-args-non-move-async-closure.rs b/src/test/ui/no-args-non-move-async-closure.rs index f2ecc44771883..9cb754167cfe5 100644 --- a/src/test/ui/no-args-non-move-async-closure.rs +++ b/src/test/ui/no-args-non-move-async-closure.rs @@ -8,7 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// compile-flags: --edition=2018 +// edition:2018 #![feature(arbitrary_self_types, async_await, await_macro, futures_api, pin)] diff --git a/src/tools/compiletest/src/header.rs b/src/tools/compiletest/src/header.rs index f66f5c5b70e7e..1dd7fe7f0cb39 100644 --- a/src/tools/compiletest/src/header.rs +++ b/src/tools/compiletest/src/header.rs @@ -298,6 +298,10 @@ impl TestProps { .extend(flags.split_whitespace().map(|s| s.to_owned())); } + if let Some(edition) = config.parse_edition(ln) { + self.compile_flags.push(format!("--edition={}", edition)); + } + if let Some(r) = config.parse_revisions(ln) { self.revisions.extend(r); } @@ -371,9 +375,9 @@ impl TestProps { self.compile_pass = config.parse_compile_pass(ln) || self.run_pass; } - if !self.skip_codegen { - self.skip_codegen = config.parse_skip_codegen(ln); - } + if !self.skip_codegen { + self.skip_codegen = config.parse_skip_codegen(ln); + } if !self.disable_ui_testing_normalization { self.disable_ui_testing_normalization = @@ -647,6 +651,10 @@ impl Config { fn parse_run_rustfix(&self, line: &str) -> bool { self.parse_name_directive(line, "run-rustfix") } + + fn parse_edition(&self, line: &str) -> Option { + self.parse_name_value_directive(line, "edition") + } } pub fn lldb_version_to_int(version_string: &str) -> isize { diff --git a/src/tools/compiletest/src/runtest.rs b/src/tools/compiletest/src/runtest.rs index caf73f4f68b03..408eda5ba5bb5 100644 --- a/src/tools/compiletest/src/runtest.rs +++ b/src/tools/compiletest/src/runtest.rs @@ -1368,6 +1368,7 @@ impl<'test> TestCx<'test> { .arg(out_dir) .arg(&self.testpaths.file) .args(&self.props.compile_flags); + if let Some(ref linker) = self.config.linker { rustdoc .arg("--linker")