| Age | Commit message (Collapse) | Author | Lines |
|
Fix extract_variable on LetExpr
|
|
Fix `else` completion before else keyword
|
|
Fix panics on `Foo{mut x}` for destructure_struct_binding
|
|
`rust-analyzer` subtree update
Subtree update of `rust-analyzer` to https://github.com/rust-lang/rust-analyzer/commit/0c62c01aae05639bbc0605ade5435dfa6da96307.
Created using https://github.com/rust-lang/josh-sync.
r? `@ghost`
|
|
Example
---
```rust
struct S { field : u32 }
fn main() {
let s = S { field : 2 };
let S { $0field } = s
}
```
**Before this PR**:
```rust
struct S { field : u32 }
fn main() {
let s = S { field : 2 };
let S { _field } = s
}
```
**After this PR**:
```rust
struct S { field : u32 }
fn main() {
let s = S { field : 2 };
let S { field: _field } = s
}
```
|
|
|
|
When the reference type does not require adding a dereference or parentheses, it will panic
Example
---
```rust
struct Foo { bar: i32, baz: i32 }
fn main() {
let $0foo = &Foo { bar: 1, baz: 2 };
let _ = &foo.bar;
}
```
**Before this PR**:
Panic:
```
assertion failed: !self.data().mutable
```
**After this PR**:
```rust
struct Foo { bar: i32, baz: i32 }
fn main() {
let Foo { bar, baz } = &Foo { bar: 1, baz: 2 };
let _ = bar;
}
```
|
|
Example
---
```rust
struct Foo { x: () }
struct Bar { foo: Foo }
fn f(Bar { mut $0foo }: Bar) {}
```
**Before this PR**:
Panic `Option::unwrap`
**After this PR**:
```rust
struct Foo { x: () }
struct Bar { foo: Foo }
fn f(Bar { foo: Foo { mut x } }: Bar) {}
```
|
|
|
|
|
|
Simplify default value of `download-ci-llvm`
Just set it to true, rather than having different default values on CI and locally, and then only deny `true` on our own CI, not elsewhere.
Closes: https://github.com/rust-lang/rust/issues/146768
r? `@jieyouxu`
|
|
|
|
minor: Bump rustc crates once more
|
|
|
|
Pull recent changes from https://github.com/rust-lang/rust via Josh.
Upstream ref: ec38671075266e9cee0348701da2e133379e7c6c
Filtered ref: ed8e25574abf50600d9d2fd61eda90708ccce6c2
Upstream diff: https://github.com/rust-lang/rust/compare/3f1552a273e43e15f6ed240d00e1efdd6a53e65e...ec38671075266e9cee0348701da2e133379e7c6c
This merge was created using https://github.com/rust-lang/josh-sync.
|
|
This updates the rust-version file to ec38671075266e9cee0348701da2e133379e7c6c.
|
|
Make `PeekMut` generic over the allocator
- plumb in allocator generic
- additional testing
Related: rust-lang/rust#122742
|
|
Although these types aren't directly constructable externally, since
they're pub, I think this omission was an oversight.
|
|
These should have been removed earlier, when we switched to the corresponding
LLVM-C bindings.
|
|
Identify metavariable functions by using named symbols rather than
string comparisons.
|
|
|
|
Factor out the check for a variable that's still repeating.
|
|
The macro is now builtin.
|
|
|
|
Fixes building std for any platform with an unsupported thread
abstraction. This includes {aarch64,armv7,x86_64}-unknown-trusty and
riscv32im-risc0-zkvm-elf, which explicitly include the unsupported
module, and platforms with no PAL.
Bug fix for PR 145177 (std: move thread into sys).
|
|
This helps us avoid the hardcoded lists elsewhere.
|
|
Rollup of 5 pull requests
Successful merges:
- rust-lang/rust#146690 (add `[const] PartialEq` bound to `PartialOrd`)
- rust-lang/rust#146776 (fixes for numerous clippy warnings)
- rust-lang/rust#146777 (fix ./x readdir logic when CDPATH is set)
- rust-lang/rust#146781 (mbe: Fix feature gate for `macro_derive`)
- rust-lang/rust#146785 (btree: safety comments for init and new)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
|
|
btree: safety comments for init and new
|
|
r=wesleywiser
mbe: Fix feature gate for `macro_derive`
|
|
fix ./x readdir logic when CDPATH is set
Fixes https://github.com/rust-lang/rust/issues/146769
r? ``@Kobzol``
|
|
fixes for numerous clippy warnings
|
|
add `[const] PartialEq` bound to `PartialOrd`
This change is included for discussion purposes.
The PartialOrd bound on PartialEq is not strictly necessary. It is, rather, logical: anything which is orderable should by definition have equality. Is the same true for constness? Should every type which is const orderable also have const equality?
|
|
This commit updates the target specification of wasm targets to set the
`limit_rdylib_exports` value to `true` like it is on other native
platforms. This was originally not implemented long ago as `wasm-ld`
didn't have options for symbol exports, but since then it's grown a
`--export` flag and such to control this. A custom case is needed in the
linker implementation to handle wasm targets as `wasm-ld` doesn't
support linker scripts used on other targets, but other than that the
implementation is straightforward.
The goal of this commit is enable building dynamic libraries on
`wasm32-wasip2` which don't export every single symbol in the Rust
standard library. Currently, without otherwise control over symbol
visibility, all symbols end up being exported which generates
excessively large binaries because `--gc-sections` ends up doing nothing
as it's all exported anyway.
|
|
The `cargo asm` tool pattern matches on such labels to figure out where functions end: normal functions generated by LLVM always do have such a label. We don't guarantee that naked functions emit such a label, but having `cargo asm` work is convenient
|
|
|
|
cg_llvm: Move target machine command-line quoting from C++ to Rust
When this code was introduced in rust-lang/rust#130446 and rust-lang/rust#131805, it was complicated by the need to maintain compatibility with earlier versions of LLVM.
Now that LLVM 20 is the baseline (rust-lang/rust#145071), we can do all of the quoting in pure Rust code, and pass two flat strings to LLVM to be used as-is.
---
In this PR, my priority has been to preserve the existing behaviour as much as possible, without worrying too much about what the behaviour *should* be. (Though I did avoid a leading space before the first argument.)
|
|
|
|
|
|
|
|
|
|
LLVM 22 is able to drop assumes that seem to not help further
optimizations, which actually seems to dramatically _help_ further
optimizations in some of our small test cases.
|
|
|
|
Until now, x86_64-pc-windows-gnu linked `rsbegin.o` and `rsend.o` just
like i686-pc-windows-gnu, even though they were no-ops for it.
This was likely done for the simplicity back when it was introduced.
Today the things are different and these startup/end objects harm other
features, like `build-std`. Given the demotion of i686-pc-windows-gnu
from tier 1, there is no point in hurting x86_64-pc-windows-gnu,
which remains a tier 1.
The files are still shipped in case downstream crates expect them, as in
case of the unmaintained `xargo`.
|
|
|
|
Rollup of 10 pull requests
Successful merges:
- rust-lang/rust#146229 (Automatically switch to lto-fat when flag RUSTFLAGS="- Zautodiff=Enable" is set)
- rust-lang/rust#146484 (rustdoc-search: JavaScript optimization based on Firefox Profiler output)
- rust-lang/rust#146541 (std: simplify host lookup)
- rust-lang/rust#146615 (rustc_codegen_llvm: Feature Conversion Tidying)
- rust-lang/rust#146638 (`rustc_next_trait_solver`: canonical out of `EvalCtxt`)
- rust-lang/rust#146663 (Allow windows resource compiler to be overridden)
- rust-lang/rust#146691 (std: Fix WASI implementation of `remove_dir_all`)
- rust-lang/rust#146709 (stdarch subtree update)
- rust-lang/rust#146738 (Fix tidy spellchecking on Windows)
- rust-lang/rust#146740 (miri subtree update)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
|
|
Add `#[track_caller]` for check_assist_by_label
|
|
|
|
|