Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rollup of 5 pull requests #91573

Merged
merged 10 commits into from
Dec 6, 2021
2 changes: 1 addition & 1 deletion compiler/rustc_target/src/spec/m68k_unknown_linux_gnu.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ use crate::abi::Endian;
use crate::spec::{Target, TargetOptions};

pub fn target() -> Target {
let mut base = super::linux_base::opts();
let mut base = super::linux_gnu_base::opts();
base.max_atomic_width = Some(32);

Target {
Expand Down
24 changes: 15 additions & 9 deletions compiler/rustc_typeck/src/check/generator_interior.rs
Original file line number Diff line number Diff line change
Expand Up @@ -536,22 +536,28 @@ pub fn check_must_not_suspend_ty<'tcx>(
}
has_emitted
}
ty::Tuple(ref tys) => {
ty::Tuple(_) => {
let mut has_emitted = false;
let spans = if let Some(hir::ExprKind::Tup(comps)) = data.expr.map(|e| &e.kind) {
debug_assert_eq!(comps.len(), tys.len());
comps.iter().map(|e| e.span).collect()
} else {
vec![]
let comps = match data.expr.map(|e| &e.kind) {
Some(hir::ExprKind::Tup(comps)) => {
debug_assert_eq!(comps.len(), ty.tuple_fields().count());
Some(comps)
}
_ => None,
};
for (i, ty) in tys.iter().map(|k| k.expect_ty()).enumerate() {
for (i, ty) in ty.tuple_fields().enumerate() {
let descr_post = &format!(" in tuple element {}", i);
let span = *spans.get(i).unwrap_or(&data.source_span);
let span = comps.and_then(|c| c.get(i)).map(|e| e.span).unwrap_or(data.source_span);
if check_must_not_suspend_ty(
fcx,
ty,
hir_id,
SuspendCheckData { descr_post, source_span: span, ..data },
SuspendCheckData {
descr_post,
expr: comps.and_then(|comps| comps.get(i)),
source_span: span,
..data
},
) {
has_emitted = true;
}
Expand Down
2 changes: 1 addition & 1 deletion src/bootstrap/download-ci-llvm-stamp
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Change this file to make users of the `download-ci-llvm` configuration download
a new version of LLVM from CI, even if the LLVM submodule hasn’t changed.

Last change is for: https://github.com/rust-lang/rust/pull/88069
Last change is for: https://github.com/rust-lang/rust/pull/91229
5 changes: 2 additions & 3 deletions src/doc/rustdoc/src/documentation-tests.md
Original file line number Diff line number Diff line change
Expand Up @@ -359,9 +359,8 @@ are added.
# fn foo() {}
```

`edition2018` tells `rustdoc` that the code sample should be compiled using
the 2018 edition of Rust. Similarly, you can specify `edition2015` to compile
the code with the 2015 edition.
`edition2015`, `edition2018` and `edition2021` tell `rustdoc`
that the code sample should be compiled using the respective edition of Rust.

```rust
/// Only runs on the 2018 edition.
Expand Down
10 changes: 10 additions & 0 deletions src/test/ui/typeck/issue-91334.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
// Regression test for the ICE described in issue #91334.

// error-pattern: this file contains an unclosed delimiter
// error-pattern: expected one of
// error-pattern: mismatched closing delimiter
// error-pattern: mismatched types

#![feature(generators)]

fn f(){||yield(((){),
50 changes: 50 additions & 0 deletions src/test/ui/typeck/issue-91334.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
error: this file contains an unclosed delimiter
--> $DIR/issue-91334.rs:10:23
|
LL | fn f(){||yield(((){),
| - - ^
| | |
| | unclosed delimiter
| unclosed delimiter

error: this file contains an unclosed delimiter
--> $DIR/issue-91334.rs:10:23
|
LL | fn f(){||yield(((){),
| - - ^
| | |
| | unclosed delimiter
| unclosed delimiter

error: expected one of `)`, `,`, `.`, `?`, or an operator, found `{`
--> $DIR/issue-91334.rs:10:19
|
LL | fn f(){||yield(((){),
| ^
| |
| expected one of `)`, `,`, `.`, `?`, or an operator
| help: missing `,`

error: mismatched closing delimiter: `)`
--> $DIR/issue-91334.rs:10:19
|
LL | fn f(){||yield(((){),
| - ^^ mismatched closing delimiter
| | |
| | unclosed delimiter
| closing delimiter possibly meant for this

error[E0308]: mismatched types
--> $DIR/issue-91334.rs:10:8
|
LL | fn f(){||yield(((){),
| -^^^^^^^^^^^^^^^ expected `()`, found generator
| |
| help: try adding a return type: `-> [generator@$DIR/issue-91334.rs:10:8: 10:23]`
|
= note: expected unit type `()`
found generator `[generator@$DIR/issue-91334.rs:10:8: 10:23]`

error: aborting due to 5 previous errors

For more information about this error, try `rustc --explain E0308`.
11 changes: 7 additions & 4 deletions src/tools/rustdoc-gui/tester.js
Original file line number Diff line number Diff line change
Expand Up @@ -172,11 +172,16 @@ async function main(argv) {
}
files.sort();

if (no_headless) {
opts["jobs"] = 1;
console.log("`--no-headless` option is active, disabling concurrency for running tests.");
}

console.log(`Running ${files.length} rustdoc-gui (${opts["jobs"]} concurrently) ...`);

if (opts["jobs"] < 1) {
process.setMaxListeners(files.length + 1);
} else {
} else if (!no_headless) {
process.setMaxListeners(opts["jobs"] + 1);
}

Expand Down Expand Up @@ -217,9 +222,7 @@ async function main(argv) {
tests_queue.splice(tests_queue.indexOf(callback), 1);
});
tests_queue.push(callback);
if (no_headless) {
await tests_queue[i];
} else if (opts["jobs"] > 0 && tests_queue.length >= opts["jobs"]) {
if (opts["jobs"] > 0 && tests_queue.length >= opts["jobs"]) {
await Promise.race(tests_queue);
}
}
Expand Down