Commit graph

129061 commits

Author SHA1 Message Date
bors
68314177e7 Auto merge of #97158 - JakobDegen:dse, r=tmiasko,cjgillot
Split dead store elimination off dest prop

This splits off a part of #96451 . I've added this in as its own pass for now, so that it actually runs, can be tested, etc. In the dest prop PR, I'll stop invoking this as its own pass, so that it doesn't get invoked twice.

r? `@tmiasko`
2022-05-28 11:49:42 +00:00
bors
19abca1172 Auto merge of #97476 - Dylan-DPC:rollup-t53nxoe, r=Dylan-DPC
Rollup of 5 pull requests

Successful merges:

 - #94640 (Partially stabilize `(const_)slice_ptr_len` feature by stabilizing `NonNull::len`)
 - #97034 (Implement `Hash` for `core::alloc::Layout`)
 - #97327 (macros: introduce `fluent_messages` macro )
 - #97448 (docs: Don't imply that OsStr on Unix is always UTF-8)
 - #97466 ([bootstrap] Move `sanitize_sh` from `dist` to `install`)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-05-28 09:08:49 +00:00
Dylan DPC
5badc299d9
Rollup merge of #97466 - jyn514:consolidate-install, r=Mark-Simulacrum
[bootstrap] Move `sanitize_sh` from `dist` to `install`

This is the only place it's used, so there's no need for it to be public in another module.
In general, `dist` shouldn't ever touch shell scripts.
2022-05-28 08:45:54 +02:00
Dylan DPC
7e7dd1c069
Rollup merge of #97327 - davidtwco:diagnostic-translation-compile-time-validation, r=oli-obk
macros: introduce `fluent_messages` macro

Adds a new `fluent_messages` macro which performs compile-time validation of the compiler's Fluent resources (i.e. that the resources parse and don't multiply define the same messages) and generates constants that make using those messages in diagnostics more ergonomic.

For example, given the following invocation of the macro..

```rust
fluent_messages! {
    typeck => "./typeck.ftl",
}
```

..where `typeck.ftl` has the following contents..

```fluent
typeck-field-multiply-specified-in-initializer =
    field `{$ident}` specified more than once
    .label = used more than once
    .label-previous-use = first use of `{$ident}`
```

...then the macro parse the Fluent resource, emitting a diagnostic if it fails to do so...

```text
error: could not parse Fluent resource
  --> $DIR/test.rs:35:28
   |
LL |         missing_message => "./missing-message.ftl",
   |                            ^^^^^^^^^^^^^^^^^^^^^^^
   |
   = help: see additional errors emitted

error: expected a message field for "missing-message"
 --> ./missing-message.ftl:1:1
  |
1 | missing-message =
  | ^^^^^^^^^^^^^^^^^^
  |
```
...or generating the following code if it succeeds:

```rust
pub static DEFAULT_LOCALE_RESOURCES: &'static [&'static str] = &[
    include_str!("./typeck.ftl"),
];

mod fluent_generated {
    mod typeck {
        pub const field_multiply_specified_in_initializer: DiagnosticMessage =
            DiagnosticMessage::fluent("typeck-field-multiply-specified-in-initializer");
        pub const field_multiply_specified_in_initializer_label_previous_use: DiagnosticMessage =
            DiagnosticMessage::fluent_attr(
                "typeck-field-multiply-specified-in-initializer",
                "previous-use-label"
            );
    }
}
```

When emitting a diagnostic, the generated constants can be used as follows:

```rust
let mut err = sess.struct_span_err(
    span,
    fluent::typeck::field_multiply_specified_in_initializer
);
err.span_label(
    span,
    fluent::typeck::field_multiply_specified_in_initializer_label
);
err.span_label(
    previous_use_span,
    fluent::typeck::field_multiply_specified_in_initializer_label_previous_use
);
err.emit();
```

I'd like to reduce the verbosity of referring to labels/notes/helps with this scheme (though it wasn't much better before), but I'll leave that for a follow-up.

r? `@oli-obk`
cc `@pvdrz` `@compiler-errors`
2022-05-28 08:45:52 +02:00
bors
b97bfc3b38 Auto merge of #97465 - jyn514:dist-ra, r=Mark-Simulacrum
Fix `x dist --stage 1 src/tools/rust-analyzer`

Previously, this would break because the submodule wasn't checked out.

Fixes https://github.com/rust-lang/rust/issues/97464.
2022-05-28 06:45:15 +00:00
bors
ed76b773b5 Auto merge of #97284 - b-naber:constraint-dyn-impl-suggestion, r=estebank
Add suggestion for relaxing static lifetime bounds on dyn trait impls in NLL

This PR introduces suggestions for relaxing static lifetime bounds on impls of dyn trait items for NLL similar to what is already available in lexical region diagnostics.

Fixes https://github.com/rust-lang/rust/issues/95701

r? `@estebank`
2022-05-28 04:04:29 +00:00
bors
764b8615e9 Auto merge of #97433 - GuillaumeGomez:rm-refcell-context, r=notriddle
Pass Context as a &mut to allow to remove RefCell fields

Fixes #90323.

r? `@notriddle`
2022-05-28 01:37:09 +00:00
Jakob Degen
7a99da1d50 Switch incremental/hashes tests to all use optimizations. 2022-05-27 18:17:39 -07:00
Matthias Krüger
b37b735038
Rollup merge of #97462 - GuillaumeGomez:more-eslint-rules, r=notriddle
Add more eslint rules

The last one is the most useful of this batch. :)

Here are the links for the eslint rules:

 * [arrow-parens](https://eslint.org/docs/rules/arrow-parens)
 * [no-unused-vars](https://eslint.org/docs/rules/no-unused-vars)
 * [eqeqeq](https://eslint.org/docs/rules/eqeqeq)

r? `@notriddle`
2022-05-28 01:11:51 +02:00
Matthias Krüger
0804ef6563
Rollup merge of #97458 - estebank:use-self-in-derive-macro, r=compiler-errors
Modify `derive(Debug)` to use `Self` in struct literal to avoid redundant error

Reduce verbosity in #97343.
2022-05-28 01:11:50 +02:00
Matthias Krüger
29ac9b13d4
Rollup merge of #97457 - JohnTitor:issue-81899, r=compiler-errors
Add regression test for #81899

Closes #81899
r? `@compiler-errors`
2022-05-28 01:11:49 +02:00
Matthias Krüger
1174dba02f
Rollup merge of #97411 - raiyansayeed:print-stderr-consistently, r=Mark-Simulacrum
Print stderr consistently

Solves https://github.com/rust-lang/rust/issues/96712

I tried to follow what I perceived as the general consensus for error messages in boostrap i.e messages that were ..
* resulting from an Err(...) =>
* literally called as "Error: ...."
* by the end of the block scope forced to run a panic! or process::exit with a guaranteed non-zero error code.
2022-05-28 01:11:47 +02:00
Joshua Nelson
81e2c112d9 [bootstrap] Move sanitize_sh from dist to install
This is the only place it's used, so there's no need for it to be public in another module.
In general, `dist` shouldn't ever touch shell scripts.
2022-05-27 17:52:41 -05:00
Joshua Nelson
6f5de285eb Fix x dist --stage 1 src/tools/rust-analyzer
Previously, this would break because the submodule wasn't checked out.
2022-05-27 17:47:31 -05:00
Guillaume Gomez
334f12c28e Add "eqeqeq" eslint rule 2022-05-27 22:30:19 +02:00
Guillaume Gomez
3741a88ad7 Add "no-unused-vars" eslint rule 2022-05-27 22:22:22 +02:00
Guillaume Gomez
b7d6a429b5 Add "arrow-parens" eslint rule 2022-05-27 22:21:41 +02:00
Guillaume Gomez
6ab8edb931 Pass Context as a &mut to allow to remove RefCell fields 2022-05-27 22:16:24 +02:00
bors
ebbcbfc236 Auto merge of #96790 - lqd:update_jemalloc, r=Mark-Simulacrum
Update jemalloc to v5.3

Now that `jemalloc` version 5.3 has been released, this PR updates `tikv-jemalloc-sys` to the corresponding release.

The crates.io publishing issue seems to have been resolved for the `jemalloc-sys` package, and version 5.3.0 is now also available under the historical name (and should become the preferred crate to be used). Therefore, this PR also switches back to using `jemalloc-sys` instead of  `tikv-jemalloc-sys`.
2022-05-27 18:28:12 +00:00
Esteban Küber
f2a1b7b772 Modify derive(Debug) to use Self in struct literal to avoid redundant error
#97343
2022-05-27 10:48:12 -07:00
Esteban Küber
d21bc6562a Add test for #97343 2022-05-27 10:47:05 -07:00
Yuki Okushi
6ba9ed86c3
Add regression test for #81899 2022-05-28 01:32:15 +09:00
bors
56fd680cf9 Auto merge of #96046 - oli-obk:const_typeck, r=cjgillot
Move various checks to typeck so them failing causes the typeck result to get tainted

Fixes #69487
fixes #79047

cc `@RalfJung` this gets rid of the `Transmute` invalid program error variant
2022-05-27 11:31:37 +00:00
Oli Scherer
4332c2fbbd Update tests on aarch64 2022-05-27 09:18:11 +00:00
bors
46147119ec Auto merge of #97442 - hafeoz:master, r=GuillaumeGomez
Fix multiline attributes processing in doctest

Fixes #97440.

It seems like the call to `check_if_attr_is_complete` is not provided with the correct argument: the pending attribute should be passed, while the current line is actually being passed. This causes any attribute with more than 2 lines to fail and produces ICE when running through doctest.
2022-05-27 08:50:51 +00:00
bors
9a42c6509d Auto merge of #97444 - compiler-errors:rollup-2gvdav6, r=compiler-errors
Rollup of 3 pull requests

Successful merges:

 - #96051 (Use rounding in float to Duration conversion methods)
 - #97066 (rustdoc: Remove `ItemFragment(Kind)`)
 - #97436 (Update `triagebot.toml` for macos ping group)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-05-27 03:27:04 +00:00
Michael Goulet
8eb4fc6057
Rollup merge of #97066 - petrochenkov:nofragkind, r=camelid
rustdoc: Remove `ItemFragment(Kind)`

And stop using `write!` when rendering URL fragments to avoid impossible errors.
2022-05-26 20:15:08 -07:00
Vadim Petrochenkov
5bf23f64cc libcore: Add iter::from_generator which is like iter::from_fn, but for coroutines instead of functions 2022-05-27 01:51:31 +03:00
hafeoz
c3beb03909
Formatting 2022-05-26 23:27:41 +01:00
hafeoz
c6cda15a16
Remove few characters for tidy check to pass 2022-05-26 23:13:37 +01:00
hafeoz
73ba7a756d
Add tests 2022-05-26 22:55:29 +01:00
hafeoz
d61ab20ff0
Use correct var for attribute completeness fn 2022-05-26 22:54:31 +01:00
bors
8bf9c20765 Auto merge of #97410 - jyn514:tool-std-features, r=Mark-Simulacrum
Only allow `compiletest` to use `feature(test)`, not any other feature

Using language features occasionally causes issues when using nightly to bootstrap, rather than beta.
See #59264 for additional context.
2022-05-26 05:45:54 +00:00
Raiyan
392077df24 fix: undo old changes 2022-05-25 22:12:50 -04:00
Raiyan
d25f64ae99 feat: refactored bootstrap files to use stderr consistently 2022-05-25 22:01:55 -04:00
Joshua Nelson
e71c48c5a0 Only allow compiletest to use feature(test), not any other feature
Using language features occasionally causes issues when using nightly to bootstrap, rather than beta.
See #59264 for additional context.
2022-05-25 18:45:54 -05:00
bors
464ec64df7 Auto merge of #97409 - GuillaumeGomez:rollup-808v9ge, r=GuillaumeGomez
Rollup of 4 pull requests

Successful merges:

 - #97317 (Allow to click on setting text)
 - #97375 (Simplify implementation of `-Z gcc-ld`)
 - #97394 (Add more eslint rules)
 - #97407 (Update books)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-05-25 23:02:37 +00:00
Guillaume Gomez
f74e61ec05
Rollup merge of #97407 - ehuss:update-books, r=ehuss
Update books

## reference

6 commits in 8e36971959ff238b5aa2575fbc7a2e09e1313e82..b74825d8f88b685e239ade00f00de68ba4cd63d4
2022-05-09 17:20:59 -0700 to 2022-05-20 14:30:30 -0700
- Inline assembly: Clarify references to quoted regs (rust-lang/reference#1191)
- Add tile registers to inline-assembly documentation (rust-lang/reference#1220)
- Upper bound on hashes in raw string literals (rust-lang/reference#1180)
- Remove footnote on warning about lifetime shadowing labels.
- Makes explanation for Spans in "Procedural Macros" clearer (rust-lang/reference#1219)
- Update "Match Expressions" to remove 'cold' (rust-lang/reference#1216)

## book

18 commits in d9415b7cbfcb4b24062683f429bd0ff535396362..b4dd5f00b87190ad5ef42cbc2a88a783c6ae57ef
2022-05-09 09:10:44 -0400 to 2022-05-24 21:37:06 -0400
- Snapshot of appendices for nostarch
- Update rust-analyzer URLs and make links less repetitive
- Correct byte string literal type. Fixes rust-lang/book#2631.
- Fix verb agreement. Fixes rust-lang/book#3176
- Propagate ch19 edits to src
- Edits to chapter 19 from nostarch
- Propagate ch18 edits to src
- Edits to ch18 from nostarch
- Propagate tech review edits to src ch5
- Responses to chapter 5 tech review
- Ch5 after tech review
- Merge branch 'ch7-edits'
- fix: mdBook authors
- Propagating ch17 edits to src
- Edits from nostarch for ch17
- Fix rust-lang/book#3152 - Wrong character used
- & is not valid inside image alt text
- Merge branch 'ch20'

## rust-by-example

2 commits in e9f93cfcf410bc092c9107b8a41a82f144c761f2..2ed26865e8c29ef939dc913a97bd321cadd72a9a
2022-05-08 18:24:06 -0300 to 2022-05-18 17:23:47 -0300
- Rework cpuid asm example. (rust-lang/rust-by-example#1542)
- chore: better description for eprint macro (rust-lang/rust-by-example#1541)

## rustc-dev-guide

11 commits in 0c02acdb6f48f03907a02ea8e537c3272b4fde9f..554c00e4805df7f7bffac7db408437d62d6dfb9a
2022-05-10 09:45:31 -0300 to 2022-05-24 17:15:35 -0700
- Cleanup rustdoc-internals
- Fix some wording on the "Incremental Compilation In Detail" page
- Exclude `tomlee.co` from link-checking (rust-lang/rustc-dev-guide#1356)
- Add note about patching dependencies and warnings. (rust-lang/rustc-dev-guide#1354)
- make sentence more simple (rust-lang/rustc-dev-guide#1353)
- Update some links and docs (rust-lang/rustc-dev-guide#1340)
- Replace a broken YouTube link (rust-lang/rustc-dev-guide#1295)
- Edit the "Compiler Source Code" chapter (rust-lang/rustc-dev-guide#1307)
- Add docs for logging of queries. (rust-lang/rustc-dev-guide#1350)
- Fix configuration names for vscode/r-a (rust-lang/rustc-dev-guide#1352)
- Update docs for deprecated attribute (rust-lang/rustc-dev-guide#1338)
2022-05-26 00:32:12 +02:00
Guillaume Gomez
d932610bab
Rollup merge of #97394 - GuillaumeGomez:more-eslint-rules, r=notriddle
Add more eslint rules

This PR adds more eslint rules. Here are the explanations for each of them:

 * [space-infix-ops](https://eslint.org/docs/rules/space-infix-ops)
 * [space-before-function-paren](https://eslint.org/docs/rules/space-before-function-paren)
 * [space-before-blocks](https://eslint.org/docs/rules/space-before-blocks)
 * [comma-dangle](https://eslint.org/docs/rules/comma-dangle)
 * [comma-style](https://eslint.org/docs/rules/comma-style)
 * [max-len](https://eslint.org/docs/rules/max-len)
 * [eol-last](https://eslint.org/docs/rules/eol-last)

r? `@notriddle`
2022-05-26 00:32:11 +02:00
Guillaume Gomez
b7927413b3
Rollup merge of #97375 - petrochenkov:zgccld, r=bjorn3
Simplify implementation of `-Z gcc-ld`

- The logic is now unified for all targets (wasm targets should also be supported now)
- Additional "symlink" files like `ld64` are eliminated
- lld-wrapper is used for propagating the correct lld flavor
- Cleanup "unwrap or exit" logic in lld-wrapper

cc https://github.com/rust-lang/rust/issues/97352
r? `@bjorn3`
2022-05-26 00:32:10 +02:00
Guillaume Gomez
02b630f566
Rollup merge of #97317 - GuillaumeGomez:gui-settings-text-click, r=jsha
Allow to click on setting text

You can test it [here](https://rustdoc.crud.net/imperio/gui-settings-text-click/doc/foo/index.html).

This PR allows to click on the text alongside the toggle to change it.

r? `@jsha`
2022-05-26 00:32:09 +02:00
Vadim Petrochenkov
2984bf674f Simplify implementation of -Z gcc-ld
- The logic is now unified for all targets (wasm targets should also be supported now)
- Additional "symlink" files like `ld64` are eliminated
- lld-wrapper is used for propagating the correct lld flavor
- Cleanup "unwrap or exit" logic in lld-wrapper
2022-05-25 23:55:22 +03:00
bors
4cbaac699c Auto merge of #97403 - arlosi:update-cargo, r=ehuss
Update cargo

10 commits in a4c1cd0eb6b18082a7e693f5a665548fe1534be4..39ad1039d9e3e1746177bf5d134af4c164f95528
2022-05-20 00:55:25 +0000 to 2022-05-25 00:50:02 +0000

* doc: discuss build script instruction order (rust-lang/cargo#10600)
* Require http-registry URLs to end with a '/' (rust-lang/cargo#10698)
* No printing executable names when running tests and benchmarks with json message format (rust-lang/cargo#10691)
* Restore proper error for crate not in local reg (rust-lang/cargo#10683)
* Update libcurl (rust-lang/cargo#10696)
* Fixed small typos (rust-lang/cargo#10693)
* fix bugs with `workspace` key and `update_toml` (rust-lang/cargo#10685)
* Bump to 0.64.0, update changelog (rust-lang/cargo#10687)
* List C compiler as a build dependency in README (rust-lang/cargo#10678)
* Add unstable `rustc-check-cfg` build script output (rust-lang/cargo#10539)

r? `@ehuss`
2022-05-25 20:35:49 +00:00
Eric Huss
57c88ca40e Update books 2022-05-25 12:45:28 -07:00
Arlo Siemsen
6b48b52a67 Update cargo 2022-05-25 10:33:59 -07:00
bors
1b5e1215ef Auto merge of #97401 - Dylan-DPC:rollup-fh9e61o, r=Dylan-DPC
Rollup of 5 pull requests

Successful merges:

 - #97302 (Do writeback of Closure params before visiting the parent expression)
 - #97328 (rustc: Fix ICE in native library error reporting)
 - #97351 (Output correct type responsible for structural match violation)
 - #97398 (Add regression test for #82830)
 - #97400 (Fix a typo on Struct `Substructure`)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-05-25 16:39:37 +00:00
b-naber
99fa123f66 bless existing test with compare-mode=nll and remove test 2022-05-25 18:13:18 +02:00
b-naber
ca9d72540b update tests 2022-05-25 18:13:17 +02:00
Dylan DPC
5d43ae8ece
Rollup merge of #97398 - JohnTitor:issue-82830, r=compiler-errors
Add regression test for #82830

Closes #82830
r? `@compiler-errors`
2022-05-25 17:37:22 +02:00
Dylan DPC
8a3ad4942c
Rollup merge of #97351 - b-naber:adt-const-params-structural-match-violation, r=michaelwoerister
Output correct type responsible for structural match violation

Previously we included the outermost type that caused a structural match violation in the error message and stated that that type must be annotated with `#[derive(Eq, PartialEq)]` even if it already had that annotation. This PR outputs the correct type in the error message.

Fixes https://github.com/rust-lang/rust/issues/97278
2022-05-25 17:37:21 +02:00