| Age | Commit message (Collapse) | Author | Lines |
|
Clean up E0637 explanation
r? @Dylan-DPC
|
|
|
|
Clean up E0622 explanation
r? @Dylan-DPC
|
|
|
|
r=varkor
mir: adjust conditional in recursion limit check
Fixes #67552.
This PR adjusts the condition used in the recursion limit check of
the monomorphization collector, from `>` to `>=`.
In #67552, the test case had infinite indirect recursion, repeating a
handful of functions (from the perspective of the monomorphization
collector): `rec` -> `identity` -> `Iterator::count` -> `Iterator::fold`
-> `Iterator::next` -> `rec`.
During this process, `resolve_associated_item` was invoked for
`Iterator::fold` (during the construction of an `Instance`), and
ICE'd due to substitutions needing inference. However, previous
iterations of this recursion would have called this function for
`Iterator::fold` - and did! - and succeeded in doing so (trivially
checkable from debug logging, `()` is present where `_` is in the substs
of the failing execution).
The expected outcome of this test case would be a recursion limit error
(which is present when the `identity` fn indirection is removed), and
the recursion depth of `rec` is increasing (other functions finish
collecting their neighbours and thus have their recursion depths reset).
When the ICE occurs, the recursion depth of `rec` is 256 (which matches
the recursion limit), which suggests perhaps that a different part of
the compiler is using a `>=` comparison and returning a different result
on this recursion rather than what it returned in every previous
recursion, thus stopping the monomorphization collector from reporting
an error on the next recursion, where `recursion_depth_of_rec > 256`
would have been true.
With grep and some educated guesses, we can determine that
the recursion limit check at line 818 in
`src/librustc_trait_selection/traits/project.rs` is the other check that
is using a different comparison. Modifying either comparison to be `>` or
`>=` respectively will fix the error, but changing the monomorphization
collector produces the nicer error.
|
|
Add missing empty line in E0619 explanation
r? @Dylan-DPC
|
|
|
|
Improve E0601 explanation
r? @Dylan-DPC
|
|
Add working example for E0617 explanation
r? @Dylan-DPC
|
|
This commit introduces a `Limit` type which is used to ensure that all
comparisons against limits within the compiler are consistent (which can
result in ICEs if they aren't).
Signed-off-by: David Wood <david@davidtw.co>
|
|
|
|
Clean up E0608 explanation
r? @Dylan-DPC
|
|
|
|
Clean up E0602 explanation
r? @Dylan-DPC
|
|
|
|
|
|
Clean up E0600 explanation
r? @Dylan-DPC
|
|
Improve E0599 explanation
r? @Dylan-DPC
|
|
Clean up E0593 explanation
r? @Dylan-DPC
|
|
Clean up E0590 explanation
r? @Dylan-DPC
|
|
|
|
|
|
|
|
Introduce function attribute corresponding to the `const`/`pure`
attributes supported by GCC, clang and other compilers.
Based on the work of gnzlbg <gonzalobg88@gmail.com>.
|
|
|
|
|
|
Disallow forbidden usage of non-ascii identifiers.
Part of RFC2457, this tightens allowed identifiers back to ascii only in two situations.
r? @petrochenkov
|
|
|
|
Signed-off-by: Rustin-Liu <rustin.liu@gmail.com>
|
|
Clean up E0589 explanation
r? @Dylan-DPC
|
|
r=petrochenkov
add long error explanation for E0228
Add long explanation for the E0228 error code
Part of #61137
Let me know if this is wrong at all (or can be written more clearly), I'm still learning Rust.
|
|
|
|
Clean up E0582 explanation
r? @Dylan-DPC
|
|
Clean up E0581 explanation
r? @Dylan-DPC
|
|
|
|
|
|
|
|
Clean up E0579 explanation
r? @Dylan-DPC
|
|
Improve E0571 wording
r? @Dylan-DPC
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fix error code in E0751.md
reference: https://github.com/rust-lang/rust/issues/71304
|
|
Improve E0567 explanation
r? @Dylan-DPC
|
|
Improve E0308 error message wording again
Hello again,
I recently did this PR: #70242
I felt the error message could be further improved, so I made [a post on the Rust community forum](https://users.rust-lang.org/t/looking-for-feedback-on-an-improved-error-message-for-e0308/40004) to ask for feedback.
(Also, there were some comments on my original PR that I took into consideration as well.)
This PR is my attempt to take all the feedback into account and propose a better and simplified error message that should still be accurate. Its main benefit is having simpler grammar, and hopefully being easier to read and understand.
Thanks to everyone who commented and gave feedback, and thank you for taking a look at this PR.
|
|
|
|
|