| Age | Commit message (Collapse) | Author | Lines |
|
fix: Fix syntactic highlighting for renames
|
|
|
|
fix: Fix #[rustc_deprecated_safe_2024]
|
|
That was used as a fallback, causing a panic when the fallback was chosen.
I also made sure this won't happen again by guaranteeing in the macro generating the tokens that they all exist.
|
|
It should be considered by the edition of the caller, not the callee.
Technically we still don't do it correctly - we need the span of the method name (if it comes from a macro), but we don't keep it and this is good enough for now.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Split out `ExpressionStore` from `Body`
|
|
fix: In completion's expand, consider recursion stop condition (when we're not inside a macro call anymore) *after* the recursive call instead of before it
|
|
Rollup of 8 pull requests
Successful merges:
- #126604 (Uplift `clippy::double_neg` lint as `double_negations`)
- #135158 (Add `TooGeneric` variant to `LayoutError` and emit `Unknown`)
- #135635 (Move `std::io::pipe` code into its own file)
- #136072 (add two old crash tests)
- #136079 (compiler_fence: fix example)
- #136091 (Add some tracing to core bootstrap logic)
- #136097 (rustc_ast: replace some len-checks + indexing with slice patterns etc.)
- #136101 (triagebot: set myself on vacation)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
Put the core unit tests in a separate coretests package
Having standard library tests in the same package as a standard library crate has bad side effects. It causes the test to have a dependency on a locally built standard library crate, while also indirectly depending on it through libtest. Currently this works out fine in the context of rust's build system as both copies are identical, but for example in cg_clif's tests I've found it basically impossible to compile both copies with the exact same compiler flags and thus the two copies would cause lang item conflicts.
This PR moves the tests of libcore to a separate package which doesn't depend on libcore, thus preventing the duplicate crates even when compiler flags don't exactly match between building the sysroot (for libtest) and building the test itself. The rest of the standard library crates do still have this issue however.
|
|
Add some tracing to core bootstrap logic
Follow-up to #135391.
### Summary
Add some initial tracing logging to bootstrap, focused on the core logic (in this PR).
Also:
- Adjusted tracing-tree style to not use indent lines (I found that more distracting than helpful).
- Avoid glob-importing `tracing` items.
- Improve the rustc-dev-guide docs on bootstrap tracing.
### Example output
```bash
$ BOOTSTRAP_TRACING=bootstrap=TRACE ./x check src/bootstrap
```

r? bootstrap
|
|
Add `TooGeneric` variant to `LayoutError` and emit `Unknown`
What's in this PR?
- Add `TooGeneric` variant to `LayoutError` and emit `Unknown` one
With this PR these issues and their respective ICEs are resolved:
- fixes https://github.com/rust-lang/rust/issues/135020
- fixes https://github.com/rust-lang/rust/issues/135138
|
|
Uplift `clippy::double_neg` lint as `double_negations`
Warns about cases like this:
```rust
fn main() {
let x = 1;
let _b = --x; //~ WARN use of a double negation
}
```
The intent is to keep people from thinking that `--x` is a prefix decrement operator. `++x`, `x++` and `x--` are invalid expressions and already have a helpful diagnostic.
I didn't add a machine-applicable suggestion to the lint because it's not entirely clear what the programmer was trying to achieve with the `--x` operation. The code that triggers the lint should always be reviewed manually.
Closes #82987
|
|
|
|
|
|
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
|
|
- `check-pass` test for a MRE of #135020
- fail test for #135138
- switch to `TooGeneric` for checking CMSE fn signatures
- switch to `TooGeneric` for compute `SizeSkeleton` (for transmute)
- fix broken tests
|
|
CI: use key-restore for cache GH action
|
|
AKA. target_feature 1.1, or non unsafe target_feature.
|
|
Compression of dylibs was removed in https://github.com/rust-lang/rust/pull/113695 (and decompression removed in https://github.com/rust-lang/rust/pull/132402).
|
|
make linux-futex test less flaky
|
|
|
|
This avoids a good deal of work, since each module child can now just be
compared via u32 comparison, rather than fetching the raw &str
(requiring locking and indexing into the interner) and then comparing
the two strings (also relatively expensive).
|
|
|
|
|
|
|
|
|
|
|
|
inside a macro call anymore) *after* the recursive call instead of before it
This is because our detection is imperfect, and miss some cases such as an impersonating `test` macro, so we hope we'll expand successfully in this case.
|
|
|
|
|
|
|
|
Rollup of 7 pull requests
Successful merges:
- #133631 (Support QNX 7.1 with `io-sock`+libstd and QNX 8.0 (`no_std` only))
- #134358 (compiler: Set `target_abi = "ilp32e"` on all riscv32e targets)
- #135812 (Fix GDB `OsString` provider on Windows )
- #135842 (TRPL: more backward-compatible Edition changes)
- #135946 (Remove extra whitespace from rustdoc breadcrumbs for copypasting)
- #135953 (ci.py: check the return code in `run-local`)
- #136019 (Add an `unchecked_div` alias to the `Div<NonZero<_>>` impls)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
|
|
|
|
|
|
|
|
Get rid of `mir::Const::from_ty_const`
This function is strange, because it turns valtrees into `mir::Const::Value`, but the rest of the const variants stay as type system consts.
All of the callsites except for one in `instsimplify` (array length simplification of `ptr_metadata` call) just go through the valtree arm of the function, so it's easier to just create a `mir::Const` directly for those.
For the instsimplify case, if we have a type system const we should *keep* having a type system const, rather than turning it into a `mir::Const::Value`; it doesn't really matter in practice, though, bc `usize` has no padding, but it feels more principled.
|
|
Update outdated permissions section in the README.md
|
|
|
|
ci.py: check the return code in `run-local`
If the run fails, it should report that and return a non-zero exit
status. The simplest way to do that is with `run(..., check=True)`,
which raises a `CalledProcessError`.
|