diff options
| author | bors <bors@rust-lang.org> | 2020-10-02 19:42:07 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2020-10-02 19:42:07 +0000 |
| commit | 8876ffc9235dade728e1fbc4be4c85415fdd0bcd (patch) | |
| tree | 6620cd20a64fe21bbe2a0dcb57e389315be3801e /src | |
| parent | be3808108e15d84881f07af85b3145bcdd626e48 (diff) | |
| parent | 0c5f0b1c690d108df0951333b1c24f6ebc02dc0c (diff) | |
| download | rust-8876ffc9235dade728e1fbc4be4c85415fdd0bcd.tar.gz rust-8876ffc9235dade728e1fbc4be4c85415fdd0bcd.zip | |
Auto merge of #77462 - jonas-schievink:rollup-m0rqdh5, r=jonas-schievink
Rollup of 12 pull requests Successful merges: - #76101 (Update RELEASES.md for 1.47.0) - #76739 (resolve: prohibit anon const non-static lifetimes) - #76811 (Doc alias name restriction) - #77405 (Add tracking issue of iter_advance_by feature) - #77409 (Add example for iter chain struct) - #77415 (Better error message for `async` blocks in a const-context) - #77423 (Add `-Zprecise-enum-drop-elaboration`) - #77432 (Use posix_spawn on musl targets) - #77441 (Fix AVR stack corruption bug) - #77442 (Clean up on example doc fixes for ptr::copy) - #77444 (Fix span for incorrect pattern field and add label) - #77453 (Stop running macOS builds on Azure Pipelines) Failed merges: r? `@ghost`
Diffstat (limited to 'src')
| -rw-r--r-- | src/ci/azure-pipelines/auto.yml | 42 | ||||
| -rw-r--r-- | src/ci/azure-pipelines/steps/run.yml | 142 | ||||
| -rw-r--r-- | src/doc/rustdoc/src/advanced-features.md | 2 | ||||
| -rw-r--r-- | src/librustdoc/clean/types.rs | 2 | ||||
| m--------- | src/llvm-project | 0 | ||||
| -rw-r--r-- | src/test/rustdoc-ui/check-doc-alias-attr.rs | 6 | ||||
| -rw-r--r-- | src/test/rustdoc-ui/check-doc-alias-attr.stderr | 34 | ||||
| -rw-r--r-- | src/test/ui/check-doc-alias-attr.rs | 6 | ||||
| -rw-r--r-- | src/test/ui/check-doc-alias-attr.stderr | 34 | ||||
| -rw-r--r-- | src/test/ui/const-generics/min_const_generics/forbid-non-static-lifetimes.rs | 27 | ||||
| -rw-r--r-- | src/test/ui/const-generics/min_const_generics/forbid-non-static-lifetimes.stderr | 21 | ||||
| -rw-r--r-- | src/test/ui/consts/async-block.rs | 8 | ||||
| -rw-r--r-- | src/test/ui/consts/async-block.stderr | 8 | ||||
| -rw-r--r-- | src/test/ui/parser/bind-struct-early-modifiers.stderr | 6 | ||||
| -rw-r--r-- | src/test/ui/parser/issue-10392.stderr | 4 | ||||
| -rw-r--r-- | src/test/ui/parser/issue-63135.stderr | 4 | ||||
| -rw-r--r-- | src/test/ui/resolve/issue-54379.stderr | 6 |
17 files changed, 162 insertions, 190 deletions
diff --git a/src/ci/azure-pipelines/auto.yml b/src/ci/azure-pipelines/auto.yml index 05177e517d0..37c2e9bc35a 100644 --- a/src/ci/azure-pipelines/auto.yml +++ b/src/ci/azure-pipelines/auto.yml @@ -18,45 +18,9 @@ trigger: - auto jobs: -- job: macOS +- job: Dummy timeoutInMinutes: 600 pool: - vmImage: macos-10.15 + vmImage: ubuntu-16.04 steps: - - template: steps/run.yml - variables: - # We're still uploading macOS builds from Azure Pipelines. - - group: prod-credentials - strategy: - matrix: - # OSX builders running tests, these run the full test suite. - # NO_DEBUG_ASSERTIONS=1 to make them go faster, but also do have some - # runners that run `//ignore-debug` tests. - # - # Note that the compiler is compiled to target 10.8 here because the Xcode - # version that we're using, 8.2, cannot compile LLVM for OSX 10.7. - x86_64-apple: - SCRIPT: ./x.py --stage 2 test - INITIAL_RUST_CONFIGURE_ARGS: --build=x86_64-apple-darwin --enable-sanitizers --enable-profiler --set rust.jemalloc --set llvm.ninja=false - RUSTC_RETRY_LINKER_ON_SEGFAULT: 1 - MACOSX_DEPLOYMENT_TARGET: 10.8 - MACOSX_STD_DEPLOYMENT_TARGET: 10.7 - NO_LLVM_ASSERTIONS: 1 - NO_DEBUG_ASSERTIONS: 1 - - dist-x86_64-apple: - SCRIPT: ./x.py dist - INITIAL_RUST_CONFIGURE_ARGS: --host=x86_64-apple-darwin --target=x86_64-apple-darwin,aarch64-apple-ios,x86_64-apple-ios --enable-full-tools --enable-sanitizers --enable-profiler --set rust.jemalloc --set llvm.ninja=false - RUSTC_RETRY_LINKER_ON_SEGFAULT: 1 - MACOSX_DEPLOYMENT_TARGET: 10.7 - NO_LLVM_ASSERTIONS: 1 - NO_DEBUG_ASSERTIONS: 1 - DIST_REQUIRE_ALL_TOOLS: 1 - - dist-x86_64-apple-alt: - SCRIPT: ./x.py dist - INITIAL_RUST_CONFIGURE_ARGS: --enable-extended --enable-profiler --set rust.jemalloc --set llvm.ninja=false - RUSTC_RETRY_LINKER_ON_SEGFAULT: 1 - MACOSX_DEPLOYMENT_TARGET: 10.7 - NO_LLVM_ASSERTIONS: 1 - NO_DEBUG_ASSERTIONS: 1 + - bash: echo "We're running this job since bors is still gating on Azure" diff --git a/src/ci/azure-pipelines/steps/run.yml b/src/ci/azure-pipelines/steps/run.yml deleted file mode 100644 index 34fc4d76fa2..00000000000 --- a/src/ci/azure-pipelines/steps/run.yml +++ /dev/null @@ -1,142 +0,0 @@ -##################################### -## READ BEFORE CHANGING THIS ## -##################################### - -# We're in the process of evaluating GitHub Actions as a possible replacement -# for Azure Pipelines, and at the moment the configuration is duplicated -# between the two CI providers. Be sure to also change the configuration in -# src/ci/github-actions when changing this file. - -##################################### - -# FIXME(linux): need to configure core dumps, enable them, and then dump -# backtraces on failure from all core dumps: -# -# - bash: sudo apt install gdb -# - bash: sudo sh -c 'echo "/checkout/obj/cores/core.%p.%E" > /proc/sys/kernel/core_pattern' -# -# Check travis config for `gdb --batch` command to print all crash logs - -steps: - -# Configure our CI_JOB_NAME variable which log analyzers can use for the main -# step to see what's going on. -- bash: | - builder=$(echo $AGENT_JOBNAME | cut -d ' ' -f 2) - echo "##vso[task.setvariable variable=CI_JOB_NAME]$builder" - displayName: Configure Job Name - -# Disable automatic line ending conversion, which is enabled by default on -# Azure's Windows image. Having the conversion enabled caused regressions both -# in our test suite (it broke miri tests) and in the ecosystem, since we -# started shipping install scripts with CRLF endings instead of the old LF. -# -# Note that we do this a couple times during the build as the PATH and current -# user/directory change, e.g. when mingw is enabled. -- bash: git config --global core.autocrlf false - displayName: "Disable git automatic line ending conversion" - -- checkout: self - fetchDepth: 2 - -- bash: src/ci/scripts/setup-environment.sh - displayName: Setup environment - -- bash: src/ci/scripts/clean-disk.sh - displayName: Clean disk - -- bash: src/ci/scripts/should-skip-this.sh - displayName: Decide whether to run this job - -- bash: src/ci/scripts/collect-cpu-stats.sh - displayName: Collect CPU-usage statistics in the background - -- bash: src/ci/scripts/dump-environment.sh - displayName: Show the current environment - -- bash: src/ci/scripts/install-sccache.sh - displayName: Install sccache - condition: and(succeeded(), not(variables.SKIP_JOB)) - -- bash: src/ci/scripts/install-clang.sh - displayName: Install clang - condition: and(succeeded(), not(variables.SKIP_JOB)) - -- bash: src/ci/scripts/install-wix.sh - displayName: Install wix - condition: and(succeeded(), not(variables.SKIP_JOB)) - -- bash: src/ci/scripts/symlink-build-dir.sh - displayName: Ensure the build happens on a partition with enough space - condition: and(succeeded(), not(variables.SKIP_JOB)) - -- bash: src/ci/scripts/disable-git-crlf-conversion.sh - displayName: "Disable git automatic line ending conversion (on C:/)" - condition: and(succeeded(), not(variables.SKIP_JOB)) - -- bash: src/ci/scripts/install-msys2.sh - displayName: Install msys2 - condition: and(succeeded(), not(variables.SKIP_JOB)) - -- bash: src/ci/scripts/install-mingw.sh - displayName: Install MinGW - condition: and(succeeded(), not(variables.SKIP_JOB)) - -- bash: src/ci/scripts/install-ninja.sh - displayName: Install ninja - condition: and(succeeded(), not(variables.SKIP_JOB)) - -- bash: src/ci/scripts/enable-docker-ipv6.sh - displayName: Enable IPv6 on Docker - condition: and(succeeded(), not(variables.SKIP_JOB)) - -# Disable automatic line ending conversion (again). On Windows, when we're -# installing dependencies, something switches the git configuration directory or -# re-enables autocrlf. We've not tracked down the exact cause -- and there may -# be multiple -- but this should ensure submodules are checked out with the -# appropriate line endings. -- bash: src/ci/scripts/disable-git-crlf-conversion.sh - displayName: Disable git automatic line ending conversion - condition: and(succeeded(), not(variables.SKIP_JOB)) - -- bash: src/ci/scripts/checkout-submodules.sh - displayName: Checkout submodules - condition: and(succeeded(), not(variables.SKIP_JOB)) - -- bash: src/ci/scripts/verify-line-endings.sh - displayName: Verify line endings - condition: and(succeeded(), not(variables.SKIP_JOB)) - -# Ensure the `aws` CLI is installed so we can deploy later on, cache docker -# images, etc. -- bash: src/ci/scripts/install-awscli.sh - condition: and(succeeded(), not(variables.SKIP_JOB)) - displayName: Install awscli - -- bash: src/ci/scripts/run-build-from-ci.sh - timeoutInMinutes: 600 - env: - AWS_ACCESS_KEY_ID: $(SCCACHE_AWS_ACCESS_KEY_ID) - AWS_SECRET_ACCESS_KEY: $(SCCACHE_AWS_SECRET_ACCESS_KEY) - TOOLSTATE_REPO_ACCESS_TOKEN: $(TOOLSTATE_REPO_ACCESS_TOKEN) - condition: and(succeeded(), not(variables.SKIP_JOB)) - displayName: Run build - -- bash: src/ci/scripts/upload-artifacts.sh - env: - AWS_ACCESS_KEY_ID: $(UPLOAD_AWS_ACCESS_KEY_ID) - AWS_SECRET_ACCESS_KEY: $(UPLOAD_AWS_SECRET_ACCESS_KEY) - displayName: Upload artifacts - # Adding a condition on DEPLOY=1 or DEPLOY_ALT=1 is not needed as all deploy - # builders *should* have the AWS credentials available. Still, explicitly - # adding the condition is helpful as this way CI will not silently skip - # deploying artifacts from a dist builder if the variables are misconfigured, - # erroring about invalid credentials instead. - condition: | - and( - succeeded(), not(variables.SKIP_JOB), - or( - variables.UPLOAD_AWS_SECRET_ACCESS_KEY, - eq(variables.DEPLOY, '1'), eq(variables.DEPLOY_ALT, '1') - ) - ) diff --git a/src/doc/rustdoc/src/advanced-features.md b/src/doc/rustdoc/src/advanced-features.md index c9a0dff5ab3..8c7926f116b 100644 --- a/src/doc/rustdoc/src/advanced-features.md +++ b/src/doc/rustdoc/src/advanced-features.md @@ -46,3 +46,5 @@ pub struct BigX; Then, when looking for it through the `rustdoc` search, if you enter "x" or "big", search will show the `BigX` struct first. + +There are some limitations on the doc alias names though: you can't use `"` or whitespace. diff --git a/src/librustdoc/clean/types.rs b/src/librustdoc/clean/types.rs index 223fda84871..8fbfb04bac3 100644 --- a/src/librustdoc/clean/types.rs +++ b/src/librustdoc/clean/types.rs @@ -695,7 +695,7 @@ impl Attributes { self.other_attrs .lists(sym::doc) .filter(|a| a.has_name(sym::alias)) - .filter_map(|a| a.value_str().map(|s| s.to_string().replace("\"", ""))) + .filter_map(|a| a.value_str().map(|s| s.to_string())) .filter(|v| !v.is_empty()) .collect::<FxHashSet<_>>() } diff --git a/src/llvm-project b/src/llvm-project -Subproject 2c56ba7db75b536b0432228b4760ed79174eca3 +Subproject e8b556b6a8836147429abe391d6ed18806867b4 diff --git a/src/test/rustdoc-ui/check-doc-alias-attr.rs b/src/test/rustdoc-ui/check-doc-alias-attr.rs index b02cc1a4545..c8bec39fad6 100644 --- a/src/test/rustdoc-ui/check-doc-alias-attr.rs +++ b/src/test/rustdoc-ui/check-doc-alias-attr.rs @@ -7,4 +7,10 @@ pub struct Bar; #[doc(alias)] //~ ERROR #[doc(alias = 0)] //~ ERROR #[doc(alias("bar"))] //~ ERROR +#[doc(alias = "\"")] //~ ERROR +#[doc(alias = "\n")] //~ ERROR +#[doc(alias = " +")] //~^ ERROR +#[doc(alias = " ")] //~ ERROR +#[doc(alias = "\t")] //~ ERROR pub struct Foo; diff --git a/src/test/rustdoc-ui/check-doc-alias-attr.stderr b/src/test/rustdoc-ui/check-doc-alias-attr.stderr index 268230ab44a..be7d7b3dbea 100644 --- a/src/test/rustdoc-ui/check-doc-alias-attr.stderr +++ b/src/test/rustdoc-ui/check-doc-alias-attr.stderr @@ -16,5 +16,37 @@ error: doc alias attribute expects a string: #[doc(alias = "0")] LL | #[doc(alias("bar"))] | ^^^^^^^^^^^^ -error: aborting due to 3 previous errors +error: '\"' character isn't allowed in `#[doc(alias = "...")]` + --> $DIR/check-doc-alias-attr.rs:10:7 + | +LL | #[doc(alias = "\"")] + | ^^^^^^^^^^^^ + +error: '\n' character isn't allowed in `#[doc(alias = "...")]` + --> $DIR/check-doc-alias-attr.rs:11:7 + | +LL | #[doc(alias = "\n")] + | ^^^^^^^^^^^^ + +error: '\n' character isn't allowed in `#[doc(alias = "...")]` + --> $DIR/check-doc-alias-attr.rs:12:7 + | +LL | #[doc(alias = " + | _______^ +LL | | ")] + | |_^ + +error: ' ' character isn't allowed in `#[doc(alias = "...")]` + --> $DIR/check-doc-alias-attr.rs:14:7 + | +LL | #[doc(alias = " ")] + | ^^^^^^^^^^^ + +error: '\t' character isn't allowed in `#[doc(alias = "...")]` + --> $DIR/check-doc-alias-attr.rs:15:7 + | +LL | #[doc(alias = "\t")] + | ^^^^^^^^^^^^ + +error: aborting due to 8 previous errors diff --git a/src/test/ui/check-doc-alias-attr.rs b/src/test/ui/check-doc-alias-attr.rs index b02cc1a4545..c8bec39fad6 100644 --- a/src/test/ui/check-doc-alias-attr.rs +++ b/src/test/ui/check-doc-alias-attr.rs @@ -7,4 +7,10 @@ pub struct Bar; #[doc(alias)] //~ ERROR #[doc(alias = 0)] //~ ERROR #[doc(alias("bar"))] //~ ERROR +#[doc(alias = "\"")] //~ ERROR +#[doc(alias = "\n")] //~ ERROR +#[doc(alias = " +")] //~^ ERROR +#[doc(alias = " ")] //~ ERROR +#[doc(alias = "\t")] //~ ERROR pub struct Foo; diff --git a/src/test/ui/check-doc-alias-attr.stderr b/src/test/ui/check-doc-alias-attr.stderr index 268230ab44a..be7d7b3dbea 100644 --- a/src/test/ui/check-doc-alias-attr.stderr +++ b/src/test/ui/check-doc-alias-attr.stderr @@ -16,5 +16,37 @@ error: doc alias attribute expects a string: #[doc(alias = "0")] LL | #[doc(alias("bar"))] | ^^^^^^^^^^^^ -error: aborting due to 3 previous errors +error: '\"' character isn't allowed in `#[doc(alias = "...")]` + --> $DIR/check-doc-alias-attr.rs:10:7 + | +LL | #[doc(alias = "\"")] + | ^^^^^^^^^^^^ + +error: '\n' character isn't allowed in `#[doc(alias = "...")]` + --> $DIR/check-doc-alias-attr.rs:11:7 + | +LL | #[doc(alias = "\n")] + | ^^^^^^^^^^^^ + +error: '\n' character isn't allowed in `#[doc(alias = "...")]` + --> $DIR/check-doc-alias-attr.rs:12:7 + | +LL | #[doc(alias = " + | _______^ +LL | | ")] + | |_^ + +error: ' ' character isn't allowed in `#[doc(alias = "...")]` + --> $DIR/check-doc-alias-attr.rs:14:7 + | +LL | #[doc(alias = " ")] + | ^^^^^^^^^^^ + +error: '\t' character isn't allowed in `#[doc(alias = "...")]` + --> $DIR/check-doc-alias-attr.rs:15:7 + | +LL | #[doc(alias = "\t")] + | ^^^^^^^^^^^^ + +error: aborting due to 8 previous errors diff --git a/src/test/ui/const-generics/min_const_generics/forbid-non-static-lifetimes.rs b/src/test/ui/const-generics/min_const_generics/forbid-non-static-lifetimes.rs new file mode 100644 index 00000000000..02944e2bff2 --- /dev/null +++ b/src/test/ui/const-generics/min_const_generics/forbid-non-static-lifetimes.rs @@ -0,0 +1,27 @@ +#![feature(min_const_generics)] + +// This test checks that non-static lifetimes are prohibited under `min_const_generics`. It +// currently emits an error with `min_const_generics`. This will ICE under `const_generics`. + +fn test<const N: usize>() {} + +fn issue_75323_and_74447_1<'a>() -> &'a () { + test::<{ let _: &'a (); 3 },>(); + //~^ ERROR a non-static lifetime is not allowed in a `const` + &() +} + +fn issue_75323_and_74447_2() { + test::<{ let _: &(); 3 },>(); +} + +fn issue_75323_and_74447_3() { + test::<{ let _: &'static (); 3 },>(); +} + +fn issue_73375<'a>() { + [(); (|_: &'a u8| (), 0).1]; + //~^ ERROR a non-static lifetime is not allowed in a `const` +} + +fn main() {} diff --git a/src/test/ui/const-generics/min_const_generics/forbid-non-static-lifetimes.stderr b/src/test/ui/const-generics/min_const_generics/forbid-non-static-lifetimes.stderr new file mode 100644 index 00000000000..cdfd491e395 --- /dev/null +++ b/src/test/ui/const-generics/min_const_generics/forbid-non-static-lifetimes.stderr @@ -0,0 +1,21 @@ +error[E0658]: a non-static lifetime is not allowed in a `const` + --> $DIR/forbid-non-static-lifetimes.rs:9:22 + | +LL | test::<{ let _: &'a (); 3 },>(); + | ^^ + | + = note: see issue #44580 <https://github.com/rust-lang/rust/issues/44580> for more information + = help: add `#![feature(const_generics)]` to the crate attributes to enable + +error[E0658]: a non-static lifetime is not allowed in a `const` + --> $DIR/forbid-non-static-lifetimes.rs:23:16 + | +LL | [(); (|_: &'a u8| (), 0).1]; + | ^^ + | + = note: see issue #44580 <https://github.com/rust-lang/rust/issues/44580> for more information + = help: add `#![feature(const_generics)]` to the crate attributes to enable + +error: aborting due to 2 previous errors + +For more information about this error, try `rustc --explain E0658`. diff --git a/src/test/ui/consts/async-block.rs b/src/test/ui/consts/async-block.rs new file mode 100644 index 00000000000..1fa2a616091 --- /dev/null +++ b/src/test/ui/consts/async-block.rs @@ -0,0 +1,8 @@ +// From <https://github.com/rust-lang/rust/issues/77361> + +// edition:2018 + +const _: i32 = { core::mem::ManuallyDrop::new(async { 0 }); 4 }; +//~^ `async` block + +fn main() {} diff --git a/src/test/ui/consts/async-block.stderr b/src/test/ui/consts/async-block.stderr new file mode 100644 index 00000000000..99f470623ac --- /dev/null +++ b/src/test/ui/consts/async-block.stderr @@ -0,0 +1,8 @@ +error: `async` blocks are not allowed in constants + --> $DIR/async-block.rs:5:47 + | +LL | const _: i32 = { core::mem::ManuallyDrop::new(async { 0 }); 4 }; + | ^^^^^^^^^^^ + +error: aborting due to previous error + diff --git a/src/test/ui/parser/bind-struct-early-modifiers.stderr b/src/test/ui/parser/bind-struct-early-modifiers.stderr index 03482a41f54..b35762a887c 100644 --- a/src/test/ui/parser/bind-struct-early-modifiers.stderr +++ b/src/test/ui/parser/bind-struct-early-modifiers.stderr @@ -1,8 +1,10 @@ error: expected `,` - --> $DIR/bind-struct-early-modifiers.rs:4:19 + --> $DIR/bind-struct-early-modifiers.rs:4:20 | LL | Foo { ref x: ref x } => {}, - | ^ + | --- ^ + | | + | while parsing the fields for this pattern error: aborting due to previous error diff --git a/src/test/ui/parser/issue-10392.stderr b/src/test/ui/parser/issue-10392.stderr index 34991151c1e..438ea67d33c 100644 --- a/src/test/ui/parser/issue-10392.stderr +++ b/src/test/ui/parser/issue-10392.stderr @@ -2,7 +2,9 @@ error: expected identifier, found `,` --> $DIR/issue-10392.rs:6:13 | LL | let A { , } = a(); - | ^ expected identifier + | - ^ expected identifier + | | + | while parsing the fields for this pattern error: aborting due to previous error diff --git a/src/test/ui/parser/issue-63135.stderr b/src/test/ui/parser/issue-63135.stderr index 396aec8335d..80e9ac5bedf 100644 --- a/src/test/ui/parser/issue-63135.stderr +++ b/src/test/ui/parser/issue-63135.stderr @@ -35,7 +35,9 @@ error: expected one of `!` or `[`, found `}` --> $DIR/issue-63135.rs:3:16 | LL | fn i(n{...,f # - | ^ expected one of `!` or `[` + | - ^ expected one of `!` or `[` + | | + | while parsing the fields for this pattern error: aborting due to 5 previous errors diff --git a/src/test/ui/resolve/issue-54379.stderr b/src/test/ui/resolve/issue-54379.stderr index 2a6b54572de..750727273eb 100644 --- a/src/test/ui/resolve/issue-54379.stderr +++ b/src/test/ui/resolve/issue-54379.stderr @@ -8,10 +8,12 @@ LL | MyStruct { .., Some(_) } => {}, | `..` must be at the end and cannot have a trailing comma error: expected `,` - --> $DIR/issue-54379.rs:9:24 + --> $DIR/issue-54379.rs:9:28 | LL | MyStruct { .., Some(_) } => {}, - | ^^^^ + | -------- ^ + | | + | while parsing the fields for this pattern error: aborting due to 2 previous errors |
