| Age | Commit message (Collapse) | Author | Lines |
|
|
|
|
|
Note that this breaks Miri.
Closes #79601
|
|
Update to new bootstrap compiler
r? `@pietroalbini`
|
|
Change vtable memory representation to use tcx allocated allocations.
This fixes https://github.com/rust-lang/rust/issues/86324. However i suspect there's more to change before it can land.
r? `@bjorn3`
cc `@rust-lang/miri`
|
|
Make ForceWarn a lint level.
Follow-up to #85788
cc `@rylev`
|
|
rustdoc: Move label to symbol
Implements #86578 depends on #85651
r? `@GuillaumeGomez`
# Screenshot of mobile

# Screenshot on desktop

|
|
Add inflate to pgo
|
|
Don't make `rustc_insignificant_dtor` feature gate
This isn't a feature gate, it's an attribute that is feature gated behind the `rustc_attrs` attribute. Closes #85680.
|
|
Rollup of 7 pull requests
Successful merges:
- #86059 (Add new tool to check HTML)
- #86529 (Add support for OpenSSL 3.0.0)
- #86657 (Fix `future_prelude_collision` false positive)
- #86661 (Editon 2021 enables precise capture)
- #86671 (Turn non_fmt_panic into a future_incompatible edition lint.)
- #86673 (Make disjoint_capture_migration an edition lint.)
- #86678 (Fix garbled suggestion for missing lifetime specifier)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
Fix garbled suggestion for missing lifetime specifier
This PR fixes #86667. The suggestion code currently checks whether there is a generic parameter that is not a synthetic `impl Trait` parameter and, if so, suggests to insert a new lifetime `'a` before that generic parameter. However, it does not make sense to insert `'a` in front of an elided lifetime parameter, since these are synthetic as well, which leads to the garbled suggestion in #86667.
|
|
Make disjoint_capture_migration an edition lint.
This turns the disjoint capture lint into an edition lint, and changes all the wording to refer to the edition.
This includes the same first commit as https://github.com/rust-lang/rust/pull/86671. See https://github.com/rust-lang/rust/pull/86671.
Fixes most of https://github.com/rust-lang/project-rfc-2229/issues/43#issuecomment-869188197
|
|
r=nikomatsakis
Turn non_fmt_panic into a future_incompatible edition lint.
This turns the `non_fmt_panic` lint into a future_incompatible edition lint, so it becomes part of the `rust_2021_compatibility` group. See https://github.com/rust-lang/rust/issues/85894.
This lint produces both warnings about semantical changes (e.g. `panic!("{{")`) and things that will become hard errors (e.g. `panic!("{")`). So I added a `explain_reason: false` that supresses the default "this will become a hard error" or "the semantics will change" message, and instead added a note depending on the situation. (cc `@rylev)`
r? `@nikomatsakis`
|
|
Editon 2021 enables precise capture
r? `@nikomatsakis`
|
|
r=nikomatsakis
Fix `future_prelude_collision` false positive
Fixes #86633
The lint for checking if method resolution of methods named `try_into` will fail in 2021 edition previously would fire on all inherent methods, however for inherent methods that consume `self`, this takes priority over `TryInto::try_into` due to being inherent, while trait method and methods that take `&self` or `&mut self` don't take priority, and thus aren't affected by this false positive.
This fix is rather simple: simply checking if the inherent method doesn't auto-deref or auto-ref (and thus takes `self`) and if so, prevents the lint from firing.
|
|
Add support for OpenSSL 3.0.0
This updates the `openssl` and `openssl-sys` crates to support building
the toolchain with system libraries up to OpenSSL 3.0.0. This does not
affect the static version used via `openssl-src` in CI builds.
ref: https://github.com/sfackler/rust-openssl/pull/1264
|
|
Add new tool to check HTML
Re-opening of https://github.com/rust-lang/rust/pull/84480.
r? `@Mark-Simulacrum`
|
|
|
|
Don't run a publically reachable server in tests
This causes Windows Defender's firewall to pop up during tests to ask if I want to allow the test program to access the public Internet, since it was listening on `0.0.0.0` (the test passes regardless of how you respond to the modal, since the firewall only affects traffic outside of the computer, none of which actually happens in the test). The test server doesn't actually need to be publicly reachable, so this makes it so it is only reachable locally, which makes Windows Defender happy.
|
|
|
|
|
|
This prevents mistakes where the feature is in the list of incomplete
features but not actually a feature by making the incompleteness a part
of the declaration.
|
|
This isn't a feature gate, it's an attribute that is feature gated
behind the `rustc_attrs` attribute. Closes #85680.
|
|
|
|
|
|
* Make html-checker run by default on rust compiler docs as well
* Ensure html-checker is run on CI
* Lazify tidy binary presence check
|
|
|
|
|
|
Add a regression test for issue-65384
Closes #65384
r? `@jackh726`
|
|
:arrow_up: rust-analyzer
|
|
Don't dist miri or rust-analyzer on stable or beta.
This prevents miri and rust-analyzer from being built for "dist" or "install" on the stable/beta channels. It is a nightly-only tool and should not be included.
Closes #86286
|
|
fix pretty print for `loop`
|
|
Fix type checking of return expressions outside of function bodies
This pull request fixes #86188. The problem is that the current code for type-checking `return` expressions stops if the `return` occurs outside of a function body, while the correct behavior is to continue type-checking the return value expression (otherwise an ICE happens later on because variables declared in the return value expression don't have a type).
Also, I have noticed that it is sometimes not obvious why a `return` is outside of a function body; for instance, in the example from #86188 (which currently causes an ICE):
```rust
fn main() {
[(); return || {
let tx;
}]
}
```
I have changed the error message to also explain why the `return` is considered outside of the function body:
```
error[E0572]: return statement outside of function body
--> ice0.rs:2:10
|
1 | / fn main() {
2 | | [(); return || {
| |__________^
3 | || let tx;
4 | || }]
| ||_____^ the return is part of this body...
5 | | }
| |_- ...not the enclosing function body
```
|
|
|
|
|
|
|
|
Add `go_to_first` query param to jump to first result
Fixes #84214
Note that while the issue initially wanted to navigate to an entry on exact match, the discussion settled on using a query parameter (`&go_to_first=true`) instead, regardless of exact or partial match.
Demonstration is attached
https://user-images.githubusercontent.com/4934853/120258768-7ff28980-c247-11eb-8c8f-1a2ceb242788.mp4
|
|
|
|
Show triangle on the "Details" disclosure element in all cases
Re-submission of #82805, fixes the style issue by applying the same margin as `<p>`.
<details><summary>Before</summary>


</details>
<details><summary>After</summary>


</details>
r? `@GuillaumeGomez`
|
|
|
|
Reserve prefixed identifiers and literals (RFC 3101)
This PR denies any identifiers immediately followed by one of three tokens `"`, `'` or `#`, which is stricter than the requirements of RFC 3101 but may be necessary according to the discussion at [Zulip].
[Zulip]: https://rust-lang.zulipchat.com/#narrow/stream/268952-edition-2021/topic/reserved.20prefixes/near/238470099
The tracking issue #84599 says we'll add a feature gate named `reserved_prefixes`, but I don't think I can do this because it is impossible for the lexer to know whether a feature is enabled or not. I guess determining the behavior by the edition information should be enough.
Fixes #84599
|
|
2229: Capture box completely in move closures
Even if the content from box is used in a sharef-ref context,
we capture the box entirerly.
This is motivated by:
1) We only capture data that is on the stack.
2) Capturing data from within the box might end up moving more data than
the user anticipated.
Closes https://github.com/rust-lang/project-rfc-2229/issues/50
r? `@nikomatsakis`
|
|
|
|
result
|
|
|
|
|
|
This causes Windows Defender's firewall to pop up during tests to ask if
I want to allow the test program to access the public Internet, since it
was listening on `0.0.0.0`. The test server doesn't actually need to be
publically reachable, so this makes it so it is only reachable locally,
which makes Windows Defender happy.
|
|
|
|
|
|
|