| Age | Commit message (Collapse) | Author | Lines |
|
Add two const generics regression tests
Closes https://github.com/rust-lang/rust/issues/66596.
Closes https://github.com/rust-lang/rust/issues/61522.
|
|
|
|
|
|
rustc_session: forbid lints override regardless of position
Addresses the regression reported in #70819 for command line arguments, but does not address the source code flag regression.
|
|
Support `#[track_caller]` on functions in `extern "Rust" { ... }`
Fixes https://github.com/rust-lang/rust/issues/70830 which is the follow-up to @eddyb's suggestion in https://github.com/rust-lang/rust/pull/69251#discussion_r380791634 to allow `#[track_caller]` on `fn`s in FFI imports, that is, on functions in `extern "Rust" { ... }` blocks.
This requires that the other side, the FFI export, also have the `#[track_caller]` attribute. Otherwise, undefined behavior is triggered and the blame lies, as usual, with the `unsafe { ... }` block which called the FFI imported function.
After this PR, all forms of `fn` items with the right ABI (`"Rust"`) support `#[track_caller]`.
As a drive-by, the PR also hardens the check rejecting `#[naked] #[track_caller]` such that methods and other forms of `fn` items are also considered.
r? @eddyb
cc @rust-lang/lang
|
|
r=ecstatic-morse
Don't lint for self-recursion when the function can diverge
Fixes https://github.com/rust-lang/rust/issues/54444
|
|
save/restore `pessimistic_yield` when entering bodies
This flag is used to make the execution order around `+=` operators
pessimistic. Failure to save/restore the flag was causing independent
async blocks to effect one another, leading to strange ICEs and failed
assumptions.
Fixes #69307
r? @Zoxc
|
|
|
|
Rollup of 7 pull requests
Successful merges:
- #70134 (add basic support of OsStrExt for HermitCore)
- #70565 (Add inline attributes for functions used in the query system)
- #70828 (rustdoc: Don't try to load source files from external crates)
- #70870 (Fix abuses of tykind::err)
- #70906 (Suggest move for closures and async blocks in more cases.)
- #70912 (Do not suggest adding type param when `use` is already suggested)
- #70930 (add tracking issue to `VecDeque::make_contiguous`)
Failed merges:
r? @ghost
|
|
Do not suggest adding type param when `use` is already suggested
Fix #70365, cc #70572.
|
|
Suggest move for closures and async blocks in more cases.
Fixes #66107, also improves #67577
Related PR https://github.com/rust-lang/rust/pull/65166
|
|
rustdoc: Don't try to load source files from external crates
Local items defined in external macros shouldn't generate rendered source files and should link to the external crate's docs instead.
Part of #70757
r? @GuillaumeGomez
cc @eddyb
|
|
--bless all mir-opt tests.
r? @oli-obk
|
|
|
|
Local items defined in external macros shouldn't generate rendered source files and should link to the external crate's docs instead.
|
|
remove false positives of unused_braces
fixes #70717
We could potentially be more aggressive when linting let bindings by checking if there are any explicit `ref`s.
I have been unable to create a snippet which compiles when using braces but has a borrowck error
without them. The closes I've gotten is [the following (playground)](https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=4a1552ebe9648cb13fcb8dd969189a6c).
r? @eddyb
|
|
|
|
|
|
|
|
Fix #70365, cc #70572.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Don't import integer and float modules, use assoc consts 2
Follow up to #70777. I missed quite a lot of places. Partially because I wanted to keep the size of the last PR down, and partially because my regexes were not good enough :)
r? @dtolnay
|
|
Keep codegen units unmerged when building compiler builtins
Make it possible to control how mono items are partitioned into code generation
units, when compiling the compiler builtins, by retaining the original partitioning.
Helps with #48625, #61063, #67960, #70489.
r? @alexcrichton
|
|
ty/walk: iterate `GenericArg`s instead of `Ty`s.
Before this PR, `Ty::walk` only iterated over `Ty`s, but that's becoming an increasing problem with `const` generics, as `ty::Const`s in `Substs` are missed by it.
By working with `GenericArg` instead, we can handle both `Ty`s and `ty::Const`s, but also `ty::Region`s, which used to require ad-hoc mechanisms such as `push_regions`.
I've also removed `TraitRef::input_types`, as it's both long obsolete, and easy to misuse.
|
|
|
|
|
|
|
|
Miri terminator handling: only do progress sanity check for 'Call' terminator
This will still catch mistakes in bad intrinsic/foreign-item shims, which is the main source of errors here.
Fixes https://github.com/rust-lang/rust/issues/70723
r? @oli-obk
|
|
|
|
Use smaller span for suggestion restricting lifetime
|
|
def_collector, visit_fn: account for no body
Fixes #70736
r? @petrochenkov
|
|
Tweak output of type params and constraints in the wrong order
r? @Centril @varkor
|
|
Using a single label for constraints and generic arguments.
|
|
|
|
|
|
|
|
"cannot resolve" → "cannot satisfy"
CC #66523
r? @Centril
|
|
Do not lose or reorder user-provided linker arguments
Linker arguments are potentially order-dependent, so the order in which `-C link-arg` and `-C link-args` options are passed to `rustc` should be preserved when they are passed further to the linker.
Also, multiple `-C link-args` options are now appended to each other rather than overwrite each other.
In other words, `-C link-arg=a -C link-args="b c" -C link-args="d e" -C link-arg=f` is now passed as `"a" "b" "c" "d" "e" "f"` and not as `"d" "e" "a" "f"`.
Addresses https://github.com/rust-lang/rust/pull/70505#issuecomment-606780163.
|
|
|
|
|
|
|
|
Enable layout debugging for `impl Trait` type aliases
I also made it print the actual type name that the alias picks under the hood.
|
|
|
|
|
|
fix Miri assignment sanity check
Thanks @eddyb for pointing me to the right APIs!
r? @eddyb
Fixes https://github.com/rust-lang/rust/issues/70804
|