| Age | Commit message (Collapse) | Author | Lines |
|
|
|
|
|
|
|
overlook overflows in rustdoc trait solving
Context:
The new rustdoc "auto trait" feature walks across impls and tries to run trait solving on them with a lot of unconstrained variables. This is prone to overflows. These overflows used to cause an ICE because of a caching bug (fixed in this PR). But even once that is fixed, it means that rustdoc causes an overflow rather than generating docs.
This PR therefore adds a new helper that propagates the overflow error out. This requires rustdoc to then decide what to do when it encounters such an overflow: technically, an overflow represents neither "yes" nor "no", but rather a failure to make a decision. I've decided to opt on the side of treating this as "yes, implemented", since rustdoc already takes an optimistic view. This may prove to include too many items, but I *suspect* not.
We could probably reduce the rate of overflows by unifying more of the parameters from the impl -- right now we only seem to consider the self type. Moreover, in the future, as we transition to Chalk, overflow errors are expected to just "go away" (in some cases, though, queries might return an ambiguous result).
Fixes #52873
cc @QuietMisdreavus -- this is the stuff we were talking about earlier
cc @GuillaumeGomez -- this supersedes #53687
|
|
|
|
|
|
This reverts commit 4d1ec818118c6c5dac5af19b291b9601ef98c17e.
|
|
This reverts commit 7f6b60899502c45fc0b58adf79d09fb77ffc8884.
|
|
It would be kind of embarrassing to ship with the "issue TBD" message!
|
|
|
|
|
|
|
|
This reverts commit e90985acdec9928da9f6d157cfeb64f0ee98bffe.
|
|
|
|
|
|
|
|
[beta] back out #53793 - stabilize outlives requirements
Fixes #54467 for beta, looks like a less risky fix than #54701
|
|
|
|
|
|
This reverts commit 6ce76acae455a32113116cd2f95f8076388fc2d3.
|
|
This reverts commit 11e488b64fed181820280d494d4fcc157ee1adc5.
|
|
This reverts commit 1a1a7f6167edf18b8a0ab488e651f7748cc2e9d3.
|
|
This reverts commit 1908892d3f60008f265dfc25ac46db387c0ad6a0.
|
|
This reverts commit 21d2a6c9868541ec9829ced9a5bae936b18741c5.
|
|
|
|
This reverts commit 6810f5286b6b91daab06fc3dccb27d8c46f14349, reversing
changes made to 8586ec6980462c99a8926646201b2444d8938d29.
|
|
|
|
|
|
some cases
|
|
[beta] Cancel warning for tool_lints
For the discussion about this, see: rust-lang-nursery/rust-clippy#3159
`clippy-preview` is available on stable since 1.29. So when running `cargo +beta clippy` on a crate with `#![allow(clippy_lint)]` a warning is produced, which tells the programmer to change this to `#![allow(clippy::clippy_lint)]`. But since `tool_lints` aren't stable yet, this would require a `#![feature(tool_lints)]`. Features aren't available on stable or beta, so we cannot do this. Even wrapping `cfg_attr(clippy)` around this won't help, since Clippy can also be run from stable or beta toolchain.
r? @Manishearth
|
|
|
|
Derive helpers conflict currently conflict with anything else, so if some resolution from a single import appears later, it will result in error anyway
|
|
Before this two macros with same name would be indistinguishable inside a
`FileName`. This caused a bug in incremental compilation (see #53097) since
two different macros would map out to the same `StableFilemapId`.
Fixes #53097.
|
|
|
|
|
|
|
|
This will be re-enabled sooner or later depending on results of further
investigation.
Fixes #54462
|
|
|
|
proc macro crates are essentially implemented as dynamic libraries using
a dlopen-based ABI. They are also Rust crates, so they have 2 worlds -
the "host" world in which they are defined, and the "target" world in
which they are used.
For all the "target" world knows, the proc macro crate might not even
be implemented in Rust, so leaks of details from the host to the target
must be avoided for correctness.
Because the "host" DefId space is different from the "target" DefId
space, any leak involving a DefId will have a nonsensical or
out-of-bounds DefKey, and will cause all sorts of crashes.
This PR fixes all leaks I have found in `decoder`. In particular, #54059
was caused by host native libraries leaking into the target, which feels
like it might even be a correctness issue if it doesn't cause an ICE.
Fixes #54059
|
|
Let cargo handle that for us
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
|
|
[beta] Update the `libgit2-sys` crate
This commit is an attempt to fix an issue [1] in the latest betas for
MinGW where it appears that `libgit2` is no longer functional and always
returns errors. The attempted fix [2] has been published as a new
version of `libgit2-sys`, so this updates the beta branch to using that
commit to get it out and see if it fixes beta.
[1]: https://github.com/rust-lang/rust/issues/54206#issuecomment-423506019
[2]: https://github.com/alexcrichton/git2-rs/commit/9c1604ef7abbbdf4a2312f18c0e60370961a14b2
|
|
editions.
|
|
This commit is an attempt to fix an issue [1] in the latest betas for
MinGW where it appears that `libgit2` is no longer functional and always
returns errors. The attempted fix [2] has been published as a new
version of `libgit2-sys`, so this updates the beta branch to using that
commit to get it out and see if it fixes beta.
[1]: https://github.com/rust-lang/rust/issues/54206#issuecomment-423506019
[2]: https://github.com/alexcrichton/git2-rs/commit/9c1604ef7abbbdf4a2312f18c0e60370961a14b2
|
|
[beta] Update some `*-sys` dependencies of Cargo/RLS
This is a backport of #54301 to the beta branch
|
|
This is a backport of #54301 to the beta branch
|
|
This commit fixes a buffer overflow issue in the standard library
discovered by Scott McMurray where if a large number was passed to
`str::repeat` it may cause and out of bounds write to the buffer of a `Vec`.
This bug was accidentally introduced in #48657 when optimizing the
`str::repeat` function. The bug affects stable Rust releases 1.26.0 to
1.29.0. We plan on backporting this fix to create a 1.29.1 release, and
the 1.30.0 release onwards will include this fix.
The fix in this commit is to introduce a deterministic panic in the case of
capacity overflow. When repeating a slice where the resulting length is larger
than the address space, there’s no way it can succeed anyway!
The standard library and surrounding libraries were briefly checked to see if
there were othere instances of preallocating a vector with a calculation that
may overflow. No instances of this bug (out of bounds write due to a calculation
overflow) were found at this time.
Note that this commit is the first steps towards fixing this issue,
we'll be making a formal post to the Rust security list once these
commits have been merged.
|
|
|
|
This pulls in https://github.com/rust-lang/cargo/pull/6054, and
is a beta backport of https://github.com/rust-lang/rust/pull/54334
|
|
This commit prepares the 1.30.0 beta release for the newly branched beta branch.
|
|
Clean up dependency tracking in Rustbuild [2/2]
Make `clear_if_dirty` calls in `Builder::cargo` with stamp dependencies for the given Mode.
Continuation of #50904
Ref issue #50509
r? @Mark-Simulacrum
|