Commit Graph

170029 Commits

Author SHA1 Message Date
Dylan DPC
825d28057e
Rollup merge of #97913 - dingxiangfei2009:wrap-into-local-var-id, r=nikomatsakis
Wrap `HirId`s of locals into `LocalVarId`s for THIR nodes

This is the first effort to decouple `HirId`s from THIR. `HirId` is not very relevant in building THIR and MIR.

Based on the changeset, I think there are a few other pending refactoring that we could perform after this, in case we want to eliminate use of `HirId` in THIR.
- `TypeckResults::closure_min_captures` could be remapped from the variable `HirId`s to `LocalVarId` while the THIR is getting built.
- Use of `ScopeTree::var_scope` could be eliminated as well, since we will consider deprecating `ScopeTree` in the future.
2022-06-11 12:59:28 +02:00
Dylan DPC
b7b5045364
Rollup merge of #97789 - ferrocene:pa-fix-issue-71363-test, r=cjgillot
Fix #71363's test by adding `-Z translate-remapped-path-to-local-path=no`

The test relies on `library/std/src/error.rs` not corresponding to a local path, but remapping might still find the related local file of a remapped path. To fix the test, this PR adds a new `-Z` flag to disable finding the corresponding local path of a remapped path.
2022-06-11 12:59:27 +02:00
Dylan DPC
11d8ae2c71
Rollup merge of #97761 - RalfJung:vtable-validation, r=cjgillot
validating the vtable can lead to Stacked Borrows errors

Fixes https://github.com/rust-lang/miri/issues/2123
2022-06-11 12:59:26 +02:00
Takayuki Maeda
f9a924d3c9 remove an unnecessary format macro 2022-06-11 18:35:10 +09:00
bors
fa68e73e99 Auto merge of #97903 - est31:unused_macro_rules_compile_error, r=petrochenkov
Never regard macro rules with compile_error! invocations as unused

The very point of compile_error! is to never be reached, and one of
the use cases of the macro, currently also listed as examples in the
documentation of compile_error, is to create nicer errors for wrong
macro invocations. Thus, we should never warn about unused macro arms
that contain invocations of compile_error.

See also https://github.com/rust-lang/rust/pull/96150#issuecomment-1126599107 and the discussion after that.

Furthermore, the PR also contains two commits to silence `unused_macro_rules` when a macro has an invalid rule, and to add a test that `unused_macros` does not behave badly in the same situation.

r? `@petrochenkov` as I've talked to them about this
2022-06-11 08:46:21 +00:00
bors
7092d42c04 Auto merge of #97980 - Dylan-DPC:rollup-l8exe4b, r=Dylan-DPC
Rollup of 6 pull requests

Successful merges:

 - #96868 (Stabilize explicit_generic_args_with_impl_trait)
 - #97703 (some additional `need_type_info.rs` cleanup)
 - #97812 (Suggest to swap a struct and a trait in trait impls)
 - #97958 (ExitStatus docs fixups)
 - #97967 (Mention `infer::Trace` methods on `infer::At` methods' docs)
 - #97972 (Update #[doc(html_playground_url)] documentation to mention what the request will be)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-06-11 06:17:54 +00:00
Dylan DPC
1f68d5f9e4
Rollup merge of #97972 - hamza1311:patch-1, r=Dylan-DPC
Update #[doc(html_playground_url)] documentation to mention what the request will be

The [documentation for `#![doc(html_playground_url = "_")]`](https://doc.rust-lang.org/rustdoc/write-documentation/the-doc-attribute.html#html_playground_url) specifies that a request will be made to the given URL but does specify what the contents of the request will be. This PR updates the documentation to include the query parameters through which the code is provided to the playground.
2022-06-11 07:42:17 +02:00
Dylan DPC
dfbedf5692
Rollup merge of #97967 - BoxyUwU:at_docs_mention_trace, r=compiler-errors
Mention `infer::Trace` methods on `infer::At` methods' docs

I missed that you could do `infcx.at(...).trace(...).eq(a, b)` when `a` and `b` dont implement `ToTrace` but does implement `Relate` these docs would have helped see that 😅
2022-06-11 07:42:16 +02:00
Dylan DPC
5dc8f1799e
Rollup merge of #97958 - mkroening:exit-status-docs, r=Dylan-DPC
ExitStatus docs fixups

This fixes a typo, adds a link and adds code-quotes in the ExitStatus docs.
2022-06-11 07:42:15 +02:00
Dylan DPC
640019ba6e
Rollup merge of #97812 - TaKO8Ki:suggest-to-swap-struct-and-trait, r=estebank
Suggest to swap a struct and a trait in trait impls

closes #89590
2022-06-11 07:42:14 +02:00
Dylan DPC
59c2ff532d
Rollup merge of #97703 - lcnr:post-89862, r=estebank
some additional `need_type_info.rs` cleanup

also fixes #97698, fixes #97806

cc `@estebank`
2022-06-11 07:42:13 +02:00
Dylan DPC
f1f44b9e4d
Rollup merge of #96868 - nrc:turbo-stable, r=jhpratt,nbdd0121,nagisa
Stabilize explicit_generic_args_with_impl_trait

This is a stabilisation PR for `explicit_generic_args_with_impl_trait`.

* [tracking issue](https://github.com/rust-lang/rust/issues/83701)
  - [Stabilisation report](https://github.com/rust-lang/rust/issues/83701#issuecomment-1109949897)
  - [FCP entered](https://github.com/rust-lang/rust/issues/83701#issuecomment-1120285703)
* [implementation PR](https://github.com/rust-lang/rust/pull/86176)
* [Reference PR](https://github.com/rust-lang/reference/pull/1212)
* There is no mention of using the turbofish operator in the book (other than an entry in the operator list in the appendix), so there is no documentation to change/add there, unless we felt like we should add a section on using turbofish, but that seems orthogonal to `explicit_generic_args_with_impl_trait`
2022-06-11 07:42:12 +02:00
bors
c84594661c Auto merge of #97905 - nnethercote:revert-infallible-encoder, r=bjorn3
Revert part of #94372 to improve performance

#94732 was supposed to give small but widespread performance improvements, as judged from three per-merge performance runs. But the performance run that occurred after merging included a roughly equal number of improvements and regressions, for unclear reasons.

This PR is for a test run reverting those changes, to see what happens.

r? `@ghost`
2022-06-11 04:00:23 +00:00
Benjamin Herr
74ef14830f Fix typos in Provider API docs 2022-06-10 20:58:27 -07:00
Warrenren
9e1e476186
Update cmp.rs
line 1352, delete parentheses for reviewers asking for it.
2022-06-11 11:04:27 +08:00
bors
75307c22f3 Auto merge of #97648 - lcnr:bound-var-replacer, r=jackh726
cleanup bound variable handling

each commit should be pretty self-contained and hopefully straightforward to review.

I've added 677ec23a8dbf8ff5f1c03ccebd46f8b85e5ec1fc so that we can stop returning the region map from `replace_bound_vars_with_fresh_vars` in the following commit.

r? `@nikomatsakis` or `@jackh726`
2022-06-11 01:39:43 +00:00
bors
b9f3bdf5ce Auto merge of #97968 - matthiaskrgr:rollup-qtd4i5h, r=matthiaskrgr
Rollup of 6 pull requests

Successful merges:

 - #93331 (refactor write_output_file to merge two invocation paths into one.)
 - #97928 (Removes debug settings from wasm32_unknown_emscripten default link args)
 - #97940 (Use relative links instead of linking to doc.rust-lang.org when possible)
 - #97941 (nit: Fixed several error_codes/Exxxx.md messages which used UpperCamelCase…)
 - #97953 (Add regression test for #54378)
 - #97957 (Make `std::` prefix suggestion test `run-rustfix`)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-06-10 22:50:17 +00:00
Muhammad Hamza
74d210e32c
Update the-doc-attribute.md 2022-06-11 03:10:29 +05:00
Muhammad Hamza
2147a069ff
Update the-doc-attribute.md 2022-06-11 02:03:33 +05:00
Ellen
9f1d3702a4 the day that i make a PR without a tidy error.. 2022-06-10 21:47:00 +01:00
David Tolnay
563aa12a22
Do not panic in Termination impl on closed stderr
Repro:

    #![feature(backtrace)]

    use std::backtrace::Backtrace;
    use std::io::{self, Write as _};
    use std::panic::{self, PanicInfo};

    #[derive(Debug)]
    pub struct Error;

    fn panic_hook(panic_info: &PanicInfo) {
        let backtrace = Backtrace::force_capture();
        let _ = write!(io::stdout(), "{}\n{}", panic_info, backtrace);
    }

    fn main() -> Result<(), Error> {
        panic::set_hook(Box::new(panic_hook));
        let stderr = io::stderr();
        let mut stderr = stderr.lock();
        while stderr.write_all(b".\n").is_ok() {}
        Err(Error)
    }

Before:

    $ RUST_BACKTRACE=1 target/debug/testing 3>&2 2>&1 1>&3 | head
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
    panicked at 'failed printing to stderr: Broken pipe (os error 32)', library/std/src/io/stdio.rs:1016:9
       0: testing::panic_hook
                 at ./src/main.rs:11:21
       1: core::ops::function::Fn::call
                 at /git/rust/library/core/src/ops/function.rs:77:5
       2: std::panicking::rust_panic_with_hook
       3: std::panicking::begin_panic_handler::{{closure}}
       4: std::sys_common::backtrace::__rust_end_short_backtrace
       5: rust_begin_unwind
       6: core::panicking::panic_fmt
       7: std::io::stdio::_eprint
       8: <core::result::Result<!,E> as std::process::Termination>::report
                 at /git/rust/library/std/src/process.rs:2164:9
       9: <core::result::Result<(),E> as std::process::Termination>::report
                 at /git/rust/library/std/src/process.rs:2148:25
      10: std::rt::lang_start::{{closure}}
                 at /git/rust/library/std/src/rt.rs:145:18
      11: std::rt::lang_start_internal
      12: std::rt::lang_start
                 at /git/rust/library/std/src/rt.rs:144:17
      13: main
      14: __libc_start_main
                 at /build/glibc-SzIz7B/glibc-2.31/csu/../csu/libc-start.c:308:16
      15: _start

After:

    $ RUST_BACKTRACE=1 target/debug/testing 3>&2 2>&1 1>&3 | head
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
2022-06-10 13:42:28 -07:00
Bob Haarman
6738434de3 Make -Cpasses= only apply to pre-link optimization
This change causes passes specified in -Cpasses= to be applied
only during pre-link optimization, not during LTO. This avoids
such passes running multiple times, which they may not be
designed for.

Fixes https://github.com/rust-lang/rust/issues/97713
2022-06-10 13:35:11 -07:00
Matthias Krüger
5d04bc828e
Rollup merge of #97957 - estebank:spancito, r=compiler-errors
Make `std::` prefix suggestion test `run-rustfix`
2022-06-10 22:32:34 +02:00
Matthias Krüger
dd409dad85
Rollup merge of #97953 - JohnTitor:issue-54378, r=compiler-errors
Add regression test for #54378

Closes #54378
r? `@compiler-errors`

Signed-off-by: Yuki Okushi <jtitor@2k36.org>
2022-06-10 22:32:33 +02:00
Matthias Krüger
4ea862f953
Rollup merge of #97941 - CorinJG:error_naming_conventions, r=compiler-errors
nit: Fixed several error_codes/Exxxx.md messages which used UpperCamelCase…

… instead of snake_case for module names
2022-06-10 22:32:32 +02:00
Matthias Krüger
30a8903821
Rollup merge of #97940 - GuillaumeGomez:relative-link, r=Dylan-DPC
Use relative links instead of linking to doc.rust-lang.org when possible

Part of https://github.com/rust-lang/rust/issues/97918.
2022-06-10 22:32:31 +02:00
Matthias Krüger
35ba4dc031
Rollup merge of #97928 - hoodmane:emscripten-no-assertions, r=tlively
Removes debug settings from wasm32_unknown_emscripten default link args

This is a debug setting. We should only make debug builds if user requests
a debug build. Currently this is inserted in release builds.

Furthermore, it would be better to insert these settings in --pre-link-args
because then it would be possible to override them if appropriate. Because
these are inserted at the end, it is necessary to patch emscripten to remove
them.

``@sbc100``
2022-06-10 22:32:30 +02:00
Matthias Krüger
07771137eb
Rollup merge of #93331 - pnkfelix:refactor-write-output-file, r=oli-obk
refactor write_output_file to merge two invocation paths into one.

this is a trivial refactor I did while I was investigating issue #91671.
2022-06-10 22:32:29 +02:00
Ellen
5d91e9e941 a 2022-06-10 21:26:53 +01:00
Martin Kröning
8537a1fd50 docs: Consistently mark ExitStatus as code 2022-06-10 20:26:41 +02:00
Martin Kröning
3b45521acf docs: Link to ExitCode instead of ExitStatus in ExitStatus 2022-06-10 20:25:36 +02:00
Martin Kröning
30c882521c docs: Fix typo in ExitStatus 2022-06-10 20:24:45 +02:00
Camille GILLOT
1a881a487b Introduce opt_ident. 2022-06-10 20:16:45 +02:00
Camille GILLOT
64b6c32b21 Assert def_ident_span presence. 2022-06-10 20:16:37 +02:00
Camille GILLOT
06af25e4f1 Bless tests. 2022-06-10 20:16:35 +02:00
Camille GILLOT
871993f7a1 Encode def_ident_span using the query. 2022-06-10 20:16:32 +02:00
Camille GILLOT
df59705301 Call def_span inside span_if_local. 2022-06-10 20:15:17 +02:00
Camille GILLOT
16f9f7c7b1 Implement def_ident_span in rustc_middle. 2022-06-10 20:15:14 +02:00
Yuki Okushi
60ccd11922
Add regression test for #54378
Signed-off-by: Yuki Okushi <jtitor@2k36.org>
2022-06-11 01:58:16 +09:00
Alan Egerton
7bbf914078
Clarify #[derive(PartialEq)] on enums
Fixes #97945
2022-06-10 16:26:00 +01:00
CorinJG
6227d89d6a E0577 fixed Sea struct CamelCase/sea module snake_case 2022-06-10 14:21:40 +01:00
lcnr
efdf948f43 use FxHashMap instead of BTreeMap 2022-06-10 14:24:36 +02:00
bors
ec55c61305 Auto merge of #96837 - tmiasko:stdio-fcntl, r=joshtriplett
Use `fcntl(fd, F_GETFD)` to detect if standard streams are open

In the previous implementation, if the standard streams were open,
but the RLIMIT_NOFILE value was below three, the poll would fail
with EINVAL:

> ERRORS: EINVAL The nfds value exceeds the RLIMIT_NOFILE value.

Switch to the existing fcntl based implementation to avoid the issue.

Fixes #96621.
2022-06-10 11:50:39 +00:00
Warrenren
5e9e73cc9f
line 1352, change self to (*self), other to (*other)
The current code will not results bug, but it difficult to understand. These code result to call &f32::partial_cmp(), and the performance will be lower than the changed code. I'm not sure why the current code don't use (*self) (*other), if you have some idea, please let me know.
2022-06-10 19:08:03 +08:00
CorinJG
20e166eab4 Fixed several error_codes/Exxxx.md messages which used UpperCamelCase instead of snake_case for module names 2022-06-10 11:25:47 +01:00
Guillaume Gomez
28ca3bdeb2 Use relative links instead of linking to doc.rust-lang.org when possible 2022-06-10 11:57:53 +02:00
bors
f19ccc2e8d Auto merge of #97939 - JohnTitor:rollup-79pxupb, r=JohnTitor
Rollup of 6 pull requests

Successful merges:

 - #97718 (Fix `delayed_good_path_bug` ice for expected diagnostics (RFC 2383))
 - #97876 (update docs for `std::future::IntoFuture`)
 - #97888 (Don't use __gxx_personality_v0 in panic_unwind on emscripten target)
 - #97922 (Remove redundant calls to reserve in impl Write for VecDeque)
 - #97927 (Do not introduce bindings for types and consts in HRTB.)
 - #97937 (Fix a typo in `test/ui/hrtb/hrtb-just-for-static.rs`)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-06-10 09:05:50 +00:00
Yuki Okushi
9d25bc3744
Rollup merge of #97937 - TaKO8Ki:fix-typo-in-hrtb-just-for-static, r=Dylan-DPC
Fix a typo in `test/ui/hrtb/hrtb-just-for-static.rs`

closes #97934
2022-06-10 17:22:33 +09:00
Yuki Okushi
c2355a615d
Rollup merge of #97927 - cjgillot:issue-97836, r=petrochenkov
Do not introduce bindings for types and consts in HRTB.

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

r? `@petrochenkov`
2022-06-10 17:22:32 +09:00
Yuki Okushi
3e5ddb73a8
Rollup merge of #97922 - paolobarbolini:no-vecdeque-extra-reserve, r=the8472
Remove redundant calls to reserve in impl Write for VecDeque

Removes the reserve calls made redundant by #95904 (as discussed in https://github.com/rust-lang/rust/pull/95632#discussion_r846850293)
2022-06-10 17:22:31 +09:00