Giga Bowser
a63defa6ed
feat: Add an assist to extract an expression into a static
2024-12-11 14:04:54 -05:00
Chayim Refael Friedman
2950325f37
Properly handle different defaults for severity of lints
...
Previously all lints were assumed to be `#[warn]`, and we had a hand-coded list of `#[allow]` exceptions. Now the severity is autogenerated from rustdoc output.
Also support lints that change status between editions, and the `warnings` lint group.
2024-12-11 20:48:41 +02:00
Ralf Jung
844635dfa3
./miri bench: set toolchain explicitly
2024-12-11 19:21:19 +01:00
Giga Bowser
2d54e06b36
minor: Add item_static constructor to SyntaxFactory
2024-12-11 10:32:32 -05:00
Giga Bowser
e230052327
feat: Add an assist to extract an expression into a constant
2024-12-11 09:52:03 -05:00
Giga Bowser
92ba35009c
internal: Move is_body_const to ide_assists::utils
2024-12-11 09:52:03 -05:00
Giga Bowser
3dcda33851
minor: Add item_const constructor to SyntaxFactory
2024-12-11 09:52:03 -05:00
Oli Scherer
c0e0d8f874
Require the constness query to only be invoked on things that can have constness
2024-12-11 11:07:02 +00:00
Lukas Wirth
a18e38e6e2
Merge pull request #18663 from Veykril/push-syoklzkntykn
...
fix: Swallow rustfmt parsing panics
2024-12-11 10:06:28 +00:00
Lukas Wirth
e6fbb5c8e6
fix: Swallow rustfmt parsing panics
2024-12-11 10:52:04 +01:00
Laurențiu Nicola
884f57f9fc
Bump rustc crates
2024-12-11 11:50:19 +02:00
Laurențiu Nicola
5db2aa865c
Merge from rust-lang/rust
2024-12-11 11:49:08 +02:00
Laurențiu Nicola
1649eb6dd7
Preparing for merge from rust-lang/rust
2024-12-11 11:48:46 +02:00
Lukas Wirth
aef05d468e
Fix copied proc-macros not being cleaned up on exit
2024-12-11 10:17:33 +01:00
Lukas Wirth
1bafbe12c0
Unload proc-macro dlls on changed timestamp
2024-12-11 09:34:27 +01:00
Jacob Pratt
16b64938c2
Rollup merge of #134141 - compiler-errors:anon-adt, r=lqd
...
Remove more traces of anonymous ADTs
Anonymous ADTs were removed in #131045 , but I forgot to remove this.
2024-12-11 03:30:43 -05:00
Lukas Wirth
536eea39e8
Merge pull request #18458 from Giga-Bowser/master
...
feat: Add diagnostic fix to remove unnecessary wrapper in type mismatch
2024-12-11 07:09:15 +00:00
Lukas Wirth
e1a27b8708
Merge pull request #18653 from SomeoneToIgnore/hash-completions
...
Hash completion items to properly match them during /resolve
2024-12-11 07:08:33 +00:00
Lukas Wirth
b20d1b80bb
Merge pull request #18657 from Giga-Bowser/generate-enum-variant
...
minor: Migrate `generate_enum_variant` to `SyntaxEditor`
2024-12-11 07:07:22 +00:00
Lukas Wirth
611c72f2f0
Merge pull request #18656 from roife/fix-issue-18639
...
feat: preserve order of parameters in extract_functions
2024-12-11 07:00:17 +00:00
Ralf Jung
e2496df493
Merge pull request #4008 from JoJoDeveloping/tb-access-state-based-skipping
...
[TB Optimization] Skip subtrees based on the subtree's root node's permissions
2024-12-11 06:21:15 +00:00
Michael Goulet
916d279236
Remove more traces of anonymous ADTs
2024-12-10 19:50:47 +00:00
León Orell Valerian Liehr
0b9e74af2e
Rollup merge of #134113 - jyn514:run-make-contains, r=jieyouxu
...
run-make: Fix `assert_stderr_not_contains_regex`
It asserted on **stdout**, not stderr.
r? ``@jieyouxu``
2024-12-10 20:16:04 +01:00
roife
0b121ef846
feat: preserve order of parameters in extract_functions
2024-12-11 02:26:58 +08:00
Esteban Küber
69fb612608
Keep track of parse errors in mods and don't emit resolve errors for paths involving them
...
When we expand a `mod foo;` and parse `foo.rs`, we now track whether that file had an unrecovered parse error that reached the end of the file. If so, we keep that information around. When resolving a path like `foo::bar`, we do not emit any errors for "`bar` not found in `foo`", as we know that the parse error might have caused `bar` to not be parsed and accounted for.
When this happens in an existing project, every path referencing `foo` would be an irrelevant compile error. Instead, we now skip emitting anything until `foo.rs` is fixed. Tellingly enough, we didn't have any test for errors caused by `mod` expansion.
Fix #97734 .
2024-12-10 18:17:24 +00:00
Giga Bowser
3b781667eb
minor: Migrate generate_enum_variant to SyntaxEditor
2024-12-10 13:11:33 -05:00
Giga Bowser
26e7e4f748
minor: Add ty_infer constructor to SyntaxFactory
2024-12-10 12:33:32 -05:00
Giga Bowser
d9bb8fcab1
minor: Add whitespace constructor to SyntaxFactory
2024-12-10 12:25:13 -05:00
Giga Bowser
3bc26ba4aa
minor: Add item_enum constructor to SyntaxFactory
...
I recursively added all constructors it depends on. I also changed the old `make::` constructors to support more of the grammar.
2024-12-10 11:12:44 -05:00
Johannes Hostert
0f920dbaf1
TB: optimize accesses on large trees by ignoring subtrees if the access would mostly be a NOP
2024-12-10 16:49:49 +01:00
bors
33c245b9e9
Auto merge of #134125 - fmease:rollup-u38o3ob, r=fmease
...
Rollup of 11 pull requests
Successful merges:
- #133478 (jsondocck: Parse, don't validate commands.)
- #133967 ([AIX] Pass -bnoipath when adding rust upstream dynamic crates)
- #133970 ([AIX] Replace sa_sigaction with sa_union.__su_sigaction for AIX)
- #133980 ([AIX] Remove option "-n" from AIX "ln" command)
- #134008 (Make `Copy` unsafe to implement for ADTs with `unsafe` fields)
- #134017 (Don't use `AsyncFnOnce::CallOnceFuture` bounds for signature deduction)
- #134023 (handle cygwin environment in `install::sanitize_sh`)
- #134041 (Use SourceMap to load debugger visualizer files)
- #134065 (Move `write_graphviz_results`)
- #134106 (Add compiler-maintainers who requested to be on review rotation)
- #134123 (bootstrap: Forward cargo JSON output to stdout, not stderr)
Failed merges:
- #134120 (Remove Felix from ping groups and review rotation)
r? `@ghost`
`@rustbot` modify labels: rollup
2024-12-10 13:16:09 +00:00
León Orell Valerian Liehr
3eaa785daa
Rollup merge of #134008 - jswrenn:unsafe-fields-copy, r=compiler-errors
...
Make `Copy` unsafe to implement for ADTs with `unsafe` fields
As a rule, the application of `unsafe` to a declaration requires that use-sites of that declaration also entail `unsafe`. For example, a field declared `unsafe` may only be read in the lexical context of an `unsafe` block.
For nearly all safe traits, the safety obligations of fields are explicitly discharged when they are mentioned in method definitions. For example, idiomatically implementing `Clone` (a safe trait) for a type with unsafe fields will require `unsafe` to clone those fields.
Prior to this commit, `Copy` violated this rule. The trait is marked safe, and although it has no explicit methods, its implementation permits reads of `Self`.
This commit resolves this by making `Copy` conditionally safe to implement. It remains safe to implement for ADTs without unsafe fields, but unsafe to implement for ADTs with unsafe fields.
Tracking: #132922
r? ```@compiler-errors```
2024-12-10 13:51:10 +01:00
León Orell Valerian Liehr
54165018af
Rollup merge of #133478 - aDotInTheVoid:finally, r=fmease
...
jsondocck: Parse, don't validate commands.
Centralizes knowledge of jsondocck syntax into the parser, so the checker doesn't need to know what the indexes are.
[Vaguely related zulip discussion](https://rust-lang.zulipchat.com/#narrow/channel/266220-t-rustdoc/topic/jsondocck.20rewrite )
I'm very happy this is negative LoC, despite adding a big, documented enum!
r? ``@fmease``
2024-12-10 13:51:07 +01:00
Kirill Bulatov
1ce15606f2
Address the feedback from pascalkuthe
...
* Use Base64 to minify the hash representation in the JSON data
* Do hash checks only for items with similar labels
2024-12-10 13:01:23 +02:00
Kirill Bulatov
f94953d732
Address the feedback from Veykril
...
* Exclude documentation field from hashing
* Do less cloning during initial completion list generation
2024-12-10 12:33:30 +02:00
jyn
9a6deba8af
run-make: Fix assert_stderr_not_contains_regex
...
It asserted on **stdout**, not stderr.
2024-12-10 04:35:20 -05:00
León Orell Valerian Liehr
8434a6e2bb
Rollup merge of #134102 - WaffleLapkin:nix-dev-shell-fixups-2024-12-10, r=Noratrieb
...
Miscellaneous fixes for nix-dev-shell
this makes it so files in `src/nix-dev-shell` are *not* ignored, as they
should not be. note that `flake.lock` is still ignored globally.
r? `@Noratrieb`
See individual commits for more info.
cc #131176 (it added gitignore entries I'm changing).
2024-12-10 08:56:01 +01:00
León Orell Valerian Liehr
4d544d9443
Rollup merge of #134010 - RalfJung:promoted-type-error-ice, r=oli-obk
...
fix ICE on type error in promoted
Fixes https://github.com/rust-lang/rust/issues/133968
Ensure that when we turn a type error into a "this promoted failed to evaluate" error, we do record this as something that may happen even in "infallible" promoteds.
2024-12-10 08:55:59 +01:00
León Orell Valerian Liehr
b1122b5054
Rollup merge of #133456 - clubby789:cargo-update, r=ChrisDenton
...
Add licenses + Run `cargo update`
Replaces #131311
try-job: dist-x86_64-linux
License changes:
- `unicode_ident` 1.0.14 introduces `(MIT OR Apache-2.0) AND Unicode-3.0`, but `unicode_ident` 1.0.12 (`(MIT OR Apache-2.0) AND Unicode-DFS-2016`) is still in tree
- `instant` and its license exception are no longer used
```
compiler & tools dependencies:
Updating allocator-api2 v0.2.18 -> v0.2.20
Updating anyhow v1.0.92 -> v1.0.93
Removing bitflags v1.3.2
Updating blake3 v1.5.4 -> v1.5.5
Updating bstr v1.10.0 -> v1.11.0
Updating bytes v1.8.0 -> v1.9.0
Updating cargo-platform v0.1.8 -> v0.1.9
Updating cc v1.2.0 -> v1.2.2
Updating clap v4.5.20 -> v4.5.21
Updating clap_builder v4.5.20 -> v4.5.21
Updating clap_complete v4.5.36 -> v4.5.38
Updating clap_lex v0.7.2 -> v0.7.3
Updating color-print v0.3.6 -> v0.3.7
Updating color-print-proc-macro v0.3.6 -> v0.3.7
Updating cpufeatures v0.2.14 -> v0.2.16
Updating curl-sys v0.4.77+curl-8.10.1 -> v0.4.78+curl-8.11.0
Updating errno v0.3.9 -> v0.3.10
Updating fastrand v2.1.1 -> v2.2.0
Updating flate2 v1.0.34 -> v1.0.35
Updating handlebars v5.1.2 -> v6.2.0
Adding icu_collections v1.5.0
Adding icu_normalizer v1.5.0
Adding icu_normalizer_data v1.5.0
Adding icu_properties v1.5.1
Adding icu_properties_data v1.5.0
Updating idna v0.5.0 -> v1.0.3
Adding idna_adapter v1.2.0
Updating indexmap v2.6.0 -> v2.7.0
Updating indicatif v0.17.8 -> v0.17.9
Removing instant v0.1.13
Updating itoa v1.0.11 -> v1.0.14
Updating js-sys v0.3.72 -> v0.3.74
Updating libc v0.2.164 -> v0.2.167
Updating libloading v0.8.5 -> v0.8.6
Updating litemap v0.7.3 -> v0.7.4
Updating mdbook v0.4.40 -> v0.4.43
Adding num-modular v0.6.1
Adding num-order v1.2.0
Updating pathdiff v0.2.2 -> v0.2.3
Updating portable-atomic v1.9.0 -> v1.10.0
Updating proc-macro2 v1.0.89 -> v1.0.92
Updating regex-automata v0.4.8 -> v0.4.9
Updating rustc-hash v2.0.0 -> v2.1.0
Updating rustc_apfloat v0.2.1+llvm-462a31f5a5ab -> v0.2.2+llvm-462a31f5a5ab
Updating rustix v0.38.38 -> v0.38.41
Updating schannel v0.1.26 -> v0.1.27
Updating serde v1.0.214 -> v1.0.215
Updating serde_derive v1.0.214 -> v1.0.215
Updating serde_json v1.0.132 -> v1.0.133
Updating socket2 v0.5.7 -> v0.5.8
Updating spdx v0.10.6 -> v0.10.7
Updating syn v2.0.87 -> v2.0.90
Updating tempfile v3.13.0 -> v3.14.0
Updating terminal_size v0.4.0 -> v0.4.1
Updating thiserror v1.0.66 -> v1.0.69 (available: v2.0.3)
Updating thiserror-impl v1.0.66 -> v1.0.69
Updating tokio v1.41.0 -> v1.41.1
Updating tracing-attributes v0.1.27 -> v0.1.28
Updating tracing-error v0.2.0 -> v0.2.1
Removing unicode-bidi v0.3.17
Updating unicode-ident v1.0.13 -> v1.0.14
Updating url v2.5.2 -> v2.5.4
Adding utf16_iter v1.0.5
Adding utf8_iter v1.0.4
Updating wasm-bindgen v0.2.95 -> v0.2.97
Updating wasm-bindgen-backend v0.2.95 -> v0.2.97
Updating wasm-bindgen-macro v0.2.95 -> v0.2.97
Updating wasm-bindgen-macro-support v0.2.95 -> v0.2.97
Updating wasm-bindgen-shared v0.2.95 -> v0.2.97
Updating wasm-encoder v0.220.0 -> v0.221.0
Adding wasmparser v0.221.0
Updating wast v219.0.1 -> v221.0.0
Updating wat v1.219.1 -> v1.221.0
Adding web-time v1.1.0
Adding write16 v1.0.0
Updating yoke v0.7.4 -> v0.7.5
Updating yoke-derive v0.7.4 -> v0.7.5
Updating zerofrom v0.1.4 -> v0.1.5
Updating zerofrom-derive v0.1.4 -> v0.1.5
library dependencies:
Updating allocator-api2 v0.2.18 -> v0.2.20
Updating cc v1.2.0 -> v1.2.2
Updating libc v0.2.162 -> v0.2.164
Updating unwinding v0.2.3 -> v0.2.4
rustbook dependencies:
Updating anstream v0.6.17 -> v0.6.18
Updating anyhow v1.0.92 -> v1.0.93
Updating bstr v1.10.0 -> v1.11.0
Updating cc v1.2.0 -> v1.2.2
Updating clap v4.5.20 -> v4.5.21
Updating clap_builder v4.5.20 -> v4.5.21
Updating clap_complete v4.5.36 -> v4.5.38
Updating clap_lex v0.7.2 -> v0.7.3
Updating cpufeatures v0.2.14 -> v0.2.16
Adding displaydoc v0.2.5
Updating errno v0.3.9 -> v0.3.10
Updating fastrand v2.1.1 -> v2.2.0
Updating flate2 v1.0.34 -> v1.0.35
Updating hashbrown v0.15.0 -> v0.15.2
Adding icu_collections v1.5.0
Adding icu_locid v1.5.0
Adding icu_locid_transform v1.5.0
Adding icu_locid_transform_data v1.5.0
Adding icu_normalizer v1.5.0
Adding icu_normalizer_data v1.5.0
Adding icu_properties v1.5.1
Adding icu_properties_data v1.5.0
Adding icu_provider v1.5.0
Adding icu_provider_macros v1.5.0
Updating idna v0.5.0 -> v1.0.3
Adding idna_adapter v1.2.0
Updating indexmap v2.6.0 -> v2.7.0
Updating itoa v1.0.11 -> v1.0.14
Updating js-sys v0.3.72 -> v0.3.74
Updating libc v0.2.161 -> v0.2.167
Adding litemap v0.7.4
Updating mdbook v0.4.42 -> v0.4.43
Updating pathdiff v0.2.2 -> v0.2.3
Updating proc-macro2 v1.0.89 -> v1.0.92
Updating regex-automata v0.4.8 -> v0.4.9
Updating rustix v0.38.38 -> v0.38.41
Updating serde v1.0.214 -> v1.0.215
Updating serde_derive v1.0.214 -> v1.0.215
Updating serde_json v1.0.132 -> v1.0.133
Adding stable_deref_trait v1.2.0
Updating syn v2.0.87 -> v2.0.90
Adding synstructure v0.13.1
Updating tempfile v3.13.0 -> v3.14.0
Updating terminal_size v0.4.0 -> v0.4.1
Updating thiserror v1.0.66 -> v1.0.69
Updating thiserror-impl v1.0.66 -> v1.0.69
Adding tinystr v0.7.6
Removing tinyvec v1.8.0
Removing tinyvec_macros v0.1.1
Removing unicode-bidi v0.3.17
Updating unicode-ident v1.0.13 -> v1.0.14
Removing unicode-normalization v0.1.24
Updating url v2.5.2 -> v2.5.4
Adding utf16_iter v1.0.5
Adding utf8_iter v1.0.4
Updating wasm-bindgen v0.2.95 -> v0.2.97
Updating wasm-bindgen-backend v0.2.95 -> v0.2.97
Updating wasm-bindgen-macro v0.2.95 -> v0.2.97
Updating wasm-bindgen-macro-support v0.2.95 -> v0.2.97
Updating wasm-bindgen-shared v0.2.95 -> v0.2.97
Adding write16 v1.0.0
Adding writeable v0.5.5
Adding yoke v0.7.5
Adding yoke-derive v0.7.5
Adding zerofrom v0.1.5
Adding zerofrom-derive v0.1.5
Adding zerovec v0.10.4
Adding zerovec-derive v0.10.3
```
2024-12-10 08:55:56 +01:00
Laurențiu Nicola
95670acff1
Merge pull request #18649 from roife/fix-issue-18648
...
minor: enhance name suggestion for `Arc<T>` and `Rc<T>`
2024-12-10 07:05:36 +00:00
bors
ff7906bfe1
Auto merge of #134096 - fmease:rollup-0asgoo8, r=fmease
...
Rollup of 9 pull requests
Successful merges:
- #133996 (Move most tests for `-l` and `#[link(..)]` into `tests/ui/link-native-libs`)
- #134012 (Grammar fixes)
- #134032 (docs: better examples for `std::ops::ControlFlow`)
- #134040 (bootstrap: print{ln}! -> eprint{ln}! (take 2))
- #134043 (Add test to check unicode identifier version)
- #134053 (rustdoc: rename `issue-\d+.rs` tests to have meaningful names (part 10))
- #134055 (interpret: clean up deduplicating allocation functions)
- #134073 (dataflow_const_prop: do not eval a ptr address in SwitchInt)
- #134084 (Fix typo in RFC mention 3598 -> 3593)
r? `@ghost`
`@rustbot` modify labels: rollup
2024-12-10 03:48:20 +00:00
Giga Bowser
b76734f20e
minor: Migrate remove_unnecessary_wrapper to SyntaxEditor
2024-12-09 21:16:31 -05:00
Giga Bowser
4898f3f591
fix: Handle the final statement in SyntaxFactory::block_expr properly
...
This caused a bug that was rather tricky to hunt down!
2024-12-09 21:15:15 -05:00
Giga Bowser
a73a6a0058
Add diagnostic fix to remove unnecessary wrapper in type mismatch
...
I also reorganized the tests in a more logical order, and removed the redundant `test_` prefix from their names.
2024-12-09 21:15:15 -05:00
Waffle Lapkin
05d83185c3
provide libz.so.1 in the nix-dev-shell
...
`libz.so.1` is needed for some (?) things...
i personally found myself in need of it when running `x t linkchecker`,
which failed when running cargo build script or something.
although there are also mentions of rustc itself needing it:
<https://github.com/NixOS/nixpkgs/issues/92946 >
2024-12-10 00:24:21 +01:00
Waffle Lapkin
6058cdcccc
remove instructions to git exclude files in src/nix-dev-shell/envrc-*
...
this is no longer needed as `.gitignore` contains both `/.envrc` and
`flake.lock` (and also `/.direnv/`)
2024-12-10 00:11:27 +01:00
Kirill Bulatov
61c0b269d8
Clippy fixes
2024-12-10 01:04:02 +02:00
Kirill Bulatov
b203c73ccf
Avoid hashing completion-related ranges as those may change during /resolve query
2024-12-10 00:45:57 +02:00
León Orell Valerian Liehr
e0bec9dabb
Rollup merge of #134055 - RalfJung:interpret-alloc-dedup, r=oli-obk
...
interpret: clean up deduplicating allocation functions
The "align" and "kind" arguments would be largely ignored in the "dedup" case, so let's move that to entirely separate function.
Let's also remove support for old-style miri_resolve_frame while we are at it. The docs have already said for a while that this must be set to 1.
2024-12-09 23:39:07 +01:00
León Orell Valerian Liehr
b282774aaf
Rollup merge of #134040 - clubby789:bootstrap-eprintln, r=jieyouxu
...
bootstrap: print{ln}! -> eprint{ln}! (take 2)
r? `@jieyouxu`
Reland of #133817 with the `print!`s changed as well.
2024-12-09 23:39:05 +01:00