1
Fork 0
Commit graph

248121 commits

Author SHA1 Message Date
Chris Denton
2fc091f510
Use volatile to make p_thread_callback used 2024-02-26 11:35:28 -03:00
bors
f7f63ccd8d Auto merge of #16680 - lnicola:salsa-doc-test, r=Veykril
internal: Remove salsa compile_fail tests

I can't figure out how to reproduce them, but hopefully fixes these:

![image](https://github.com/rust-lang/rust-analyzer/assets/308347/462dbfc3-5414-42fd-b81d-a3d699fa9a8d)
2024-02-26 14:08:38 +00:00
bors
40bf8bf757 Auto merge of #16679 - Veykril:block-mod, r=Veykril
fix: Fix modules in blocks not resolving in ide layer

Fixes https://github.com/rust-lang/rust-analyzer/issues/16511
2024-02-26 13:56:01 +00:00
Lukas Wirth
91554e0ae7 fix: Fix modules in blocks not resolving in ide layer 2024-02-26 14:54:47 +01:00
bors
2251d06200 Auto merge of #16673 - szepeviktor:patch-1, r=lnicola
Narrow down typos ignores

- remove ignored files
- check dotfiles
- reorder config sections: files, regexp, words, IDs
- remove non-existent ignores
2024-02-26 13:41:48 +00:00
Viktor Szépe
18801171b2 Narrow down typos ignores 2024-02-26 13:40:01 +00:00
Laurențiu Nicola
1ef7a9971d Remove salsa compile_fail tests 2024-02-26 15:26:55 +02:00
roife
38a50cf1a4 test: callsites inside inline_into_callers 2024-02-26 20:24:44 +08:00
roife
36298c622e fix:do not handle callsites in macros' parameters 2024-02-26 20:23:36 +08:00
bors
b8de591b65 Auto merge of #119106 - lcnr:decrement-universes, r=BoxyUwU
avoid generalization inside of aliases

The basic idea of this PR is that we don't generalize aliases when the instantiation could fail later on, either due to the *occurs check* or because of a universe error. We instead replace the whole alias with an inference variable and emit a nested `AliasRelate` goal. This `AliasRelate` then fully normalizes the alias before equating it with the inference variable, at which point the alias can be treated like any other rigid type.

We now treat aliases differently depending on whether they are *rigid* or not. To detect whether an alias is rigid we check whether `NormalizesTo` fails. While we already do so inside of `AliasRelate` anyways, also doing so when instantiating a query response would be both ugly/difficult and likely inefficient. To avoid that I change `instantiate_and_apply_query_response` to relate types completely structurally. This change generally removes a lot of annoying complexity, which is nice. It's implemented by adding a flag to `Equate` to change it to structurally handle aliases.

We currently always apply constraints from canonical queries right away. By providing all the necessary information to the canonical query, we can guarantee that instantiating the query response never fails, which further simplifies the implementation. This does add the invariant that *any information which could cause instantiating type variables to fail must also be available inside of the query*.

While it's acceptable for canonicalization to result in more ambiguity, we must not cause the solver to incompletely structurally relate aliases by erasing information. This means we have to be careful when merging universes during canonicalization. As we only generalize for type and const variables we have to make sure that anything nameable by such a type or const variable inside of the canonical query is also nameable outside of it. Because of this we both stop merging universes of existential variables when canonicalizing inputs, we put all uniquified regions into a higher universe which is not nameable by any type or const variable.

I will look into always replacing aliases with inference variables when generalizing in a later PR unless the alias references bound variables. This should both pretty much fix https://github.com/rust-lang/trait-system-refactor-initiative/issues/4. This may allow us to merge the universes of existential variables again by changing generalize to not consider their universe when deciding whether to generalize aliases. This requires some additional non-trivial changes to alias-relate, so I am leaving that as future work.

Fixes https://github.com/rust-lang/trait-system-refactor-initiative/issues/79. While it would be nice to decrement universe indices when existing a `forall`, that was surprisingly difficult and not necessary to fix this issue. I am really happy with the approach in this PR think it is the correct way forward to also fix the remaining cases of https://github.com/rust-lang/trait-system-refactor-initiative/issues/8.
2024-02-26 12:11:58 +00:00
bors
8929853df7 Auto merge of #16647 - Young-Flash:fix_replace_filter_map_next_with_find_map, r=Veykril
fix: replace_filter_map_next_with_find_map shouldn't work for dyn trait

close https://github.com/rust-lang/rust-analyzer/issues/16596
2024-02-26 11:31:44 +00:00
Young-Flash
7a58a23f16 internal: format code 2024-02-26 19:10:50 +08:00
Young-Flash
fd0cddf655 internal: move strip_references into dyn trait check 2024-02-26 18:57:46 +08:00
bors
e1983d2b90 Auto merge of #16669 - ShoyuVanilla:merge-borrow-kind-unique, r=Veykril
Merge `BorrowKind::Unique` into `BorrowKind::Mut`

Resolves #15170
2024-02-26 10:57:42 +00:00
lcnr
3b3514acec consider placeholders in fn term_is_fully_unconstrained 2024-02-26 11:51:01 +01:00
bors
6903a5c7d6 Auto merge of #16665 - MabezDev:prio-rustup-when-searching, r=Veykril
Prioritise rustup sysroots over system ones

`get_path_for_executable` will now first check `$CARGO_HOME` before falling back to searching `$PATH`.

`rustup` is the recommended way to manage rust toolchains, therefore should be picked before the system toolchain.

Closes #16661
2024-02-26 10:45:11 +00:00
bors
c414c08da3 Auto merge of #3328 - RalfJung:many-seeds, r=RalfJung
./miri many-seeds: support MIRI_SEED_END to control the end of the seed range
2024-02-26 10:42:54 +00:00
Ralf Jung
16c12ace3b ./miri many-seeds: support MIRI_SEED_END to control the end of the tried seed range 2024-02-26 11:33:01 +01:00
bors
4585b461e5 Auto merge of #16670 - rikhuijzer:rh/inlay-hints-nvim, r=Veykril
Document nvim 0.10 `inlay_hint`

It took me a few hours to figure out how to enable inlay type hints on Nvim 0.10 with `lspconfig`. `rustaceanvim` has already dropped support for them (https://github.com/mrcjkb/rustaceanvim/discussions/46#discussioncomment-7518669) and most other plugins, like `rust-tools`, are depreciated in favor of `rustaceanvim`.

This PR documents how to enable the inlay hints on Neovim 0.10 and later. I've tested this and changing the `on_attach` function is the only step that is required.
2024-02-26 10:32:30 +00:00
bors
309e087426 Auto merge of #16627 - Young-Flash:issue_template, r=Veykril
update bug report issue template
2024-02-26 10:18:15 +00:00
Ralf Jung
a3c0f3af9c miri: rename miri_start_panic → miri_start_unwind 2024-02-26 11:10:18 +01:00
Ralf Jung
b4ca582b89 rename 'try' intrinsic to 'catch_unwind' 2024-02-26 11:10:18 +01:00
lcnr
1c264ca9ca add regression tests 2024-02-26 11:01:31 +01:00
lcnr
2c7ede8f52 update tests 2024-02-26 10:57:46 +01:00
lcnr
a788be0aae use fulfillment in `Coerce::unify'
only checking whether nested goals hold means that we don't consider
their inference constraints. Given that we now emit `AliasRelate` when relating
aliases and infer vars, this previously resulted in an "unconstrained" inference var
in `coerce_unsized`.
2024-02-26 10:57:38 +01:00
bors
908b33ebff Auto merge of #3327 - RalfJung:tree-interior_mut_reborrow, r=RalfJung
tree borrows: add a test to sb_fails

This is something that happens in the wild (https://github.com/rust-lang/rust/issues/121626), so TB accepting this is good. Let's make sure we notice if this ever changes.
2024-02-26 09:56:19 +00:00
Ralf Jung
6c945dd5a0 tree borrows: add a test to sb_fails 2024-02-26 10:54:06 +01:00
Gurinder Singh
633c92cd6d Do not const pop unions
as they can made to produce values whose types don't
match their underlying layout types which can lead to
ICEs on eval
2024-02-26 15:22:22 +05:30
bors
ee933f6795 Auto merge of #121627 - GuillaumeGomez:rollup-udp3m0k, r=GuillaumeGomez
Rollup of 5 pull requests

Successful merges:

 - #120656 (Allow tests to specify a `//@ filecheck-flags:` header)
 - #120840 (Split Diagnostics for Uncommon Codepoints: Add Individual Identifier Types)
 - #121554 (Don't unnecessarily change `SIGPIPE` disposition in `unix_sigpipe` tests)
 - #121590 (Correctly handle if rustdoc JS script hash changed)
 - #121620 (Fix more #121208 fallout (round 3))

r? `@ghost`
`@rustbot` modify labels: rollup
2024-02-26 09:50:51 +00:00
Ralf Jung
297abc35b3 fix some references to no-longer-existing ReprOptions.layout_seed 2024-02-26 10:40:48 +01:00
Guillaume Gomez
76f303d658
Rollup merge of #121620 - nnethercote:fix-even-more-121208-fallout, r=lcnr
Fix more #121208 fallout (round 3)

#121208 converted lots of delayed bugs to bugs. Unsurprisingly, there were a few invalid conversion found via fuzzing.

r? `@lcnr`
2024-02-26 10:27:43 +01:00
Guillaume Gomez
a1593a678f
Rollup merge of #121590 - GuillaumeGomez:rustdoc-js-changed, r=notriddle
Correctly handle if rustdoc JS script hash changed

It's something that annoyed me for quite some time: I have nightly docs open (for both std and compiler). And often, I don't look at the page for some days. Then when I come back to it, I make a search... except nothing happens. Took me a while to figure out that it was because the hash of one of the JS files we load for the search (either `search.js` or `search-index.js`) was updated in the meantime, preventing the search to be done. To go around it, I added to press `ENTER` to make the form submitted (which would reload the same page but with the correct hashes this time and the search being run).

r? `@notriddle`
2024-02-26 10:27:42 +01:00
Guillaume Gomez
5bd909227d
Rollup merge of #121554 - Enselic:sigaction, r=oli-obk
Don't unnecessarily change `SIGPIPE` disposition in `unix_sigpipe` tests

In `auxiliary/sigpipe-utils.rs`, all we want to know is the current `SIGPIPE` disposition. We should not change it. So use `libc::sigaction` instead of `libc::signal`. That way we can also remove the code that restores it.

Part of https://github.com/rust-lang/rust/issues/97889.
2024-02-26 10:27:42 +01:00
Guillaume Gomez
91d337dfa8
Rollup merge of #120840 - HTGAzureX1212:HTGAzureX1212/unicode-identifier-types, r=fmease,Manishearth
Split Diagnostics for Uncommon Codepoints: Add Individual Identifier Types

This pull request further modifies the `uncommon_codepoints` lint, adding the individual identifier types of `Technical`, `Not_NFKC`, `Exclusion` and `Limited_Use` to the diagnostic message.

Example rendered diagnostic:
```
error: identifier contains a Unicode codepoint that is not used in normalized strings: 'ij'
  --> $DIR/lint-uncommon-codepoints.rs:6:4
   |
LL | fn dijkstra() {}
   |    ^^^^^^^
   = note: this character is included in the Not_NFKC Unicode general security profile
```

Second step of #120228.
2024-02-26 10:27:41 +01:00
Guillaume Gomez
0e08be5360
Rollup merge of #120656 - Zalathar:filecheck-flags, r=wesleywiser
Allow tests to specify a `//@ filecheck-flags:` header

This allows individual codegen/assembly/mir-opt tests to pass extra flags to the LLVM `filecheck` tool as needed.

---

The original motivation was noticing that `tests/run-make/instrument-coverage` was very close to being an ordinary codegen test, except that it needs some extra logic to set up platform-specific variables to be passed into filecheck.

I then saw the comment in `verify_with_filecheck` indicating that a `filecheck-flags` header might be useful for other purposes as well.
2024-02-26 10:27:41 +01:00
lcnr
1b3164f5c9 always emit AliasRelate goals when relating aliases
Add `StructurallyRelateAliases` to allow instantiating infer vars with rigid aliases.
Change `instantiate_query_response` to be infallible in the new solver. This requires canonicalization to not hide any information used by the query, so weaken
universe compression. It also modifies `term_is_fully_unconstrained` to allow
region inference variables in a higher universe.
2024-02-26 10:17:43 +01:00
lcnr
eeeb9b4d31 add additional logging 2024-02-26 10:12:40 +01:00
bors
b09fb8ab3b Auto merge of #12350 - hamirmahal:style/sync-GitHub-Corner-colors, r=xFrednet
style: sync GitHub Corner colors

fixes #12349.

*Please write a short comment explaining your change (or "none" for internal only changes)*

changelog: sync site GitHub Corner colors
2024-02-26 08:28:00 +00:00
bors
7cadf0b2da Auto merge of #3326 - rust-lang:rustup-2024-02-26, r=RalfJung
Automatic Rustup

also fixes https://github.com/rust-lang/miri/issues/3308
2024-02-26 08:02:40 +00:00
Ralf Jung
db0b49b945 add direct test for new ProcessPrng shim 2024-02-26 09:01:04 +01:00
Hamir Mahal
3ef693c555
refactor: remove CSS variables that are now unused 2024-02-26 00:00:33 -08:00
Ralf Jung
e9c7cc2087 fix clippy 2024-02-26 08:55:04 +01:00
bors
dc00e8cdb6 Auto merge of #121317 - ChrisDenton:win10-sync, r=Mark-Simulacrum
Always use WaitOnAddress on Win10+

`WaitOnAddress` and `WakeByAddressSingle` are always available since Windows 8 so they can now be used without needing to delay load. I've also moved the Windows 7 thread parking fallbacks into a separate sub-module.
2024-02-26 06:31:30 +00:00
The Miri Conjob Bot
779d079677 Merge from rustc 2024-02-26 05:40:12 +00:00
The Miri Conjob Bot
8bdcfb0a0a Preparing for merge from rustc 2024-02-26 05:31:30 +00:00
David Tolnay
793b45f53a
Add Waker::will_wake tests
Currently fails:

    ---- task::test_waker_will_wake_clone stdout ----
    thread 'task::test_waker_will_wake_clone' panicked at library/alloc/tests/task.rs:17:5:
    assertion failed: waker.will_wake(&clone)
2024-02-25 20:55:12 -08:00
lucarlig
93deced553 change rs doc to no_run 2024-02-26 07:02:40 +04:00
HTGAzureX1212.
8bccceb8fc separate messages for individual categories 2024-02-26 10:09:03 +08:00
Michael Goulet
ff07f55db5 Actually use the right closure kind when checking async Fn goals 2024-02-26 01:36:14 +00:00
Chris Denton
35421c7461
Add synchronization library to run-make flags 2024-02-25 22:28:30 -03:00