Commit graph

16347 commits

Author SHA1 Message Date
Zalathar
f55736365a compiletest: Make a FIXME for escaped newlines less confusing
The old FIXME implies that we don't support escaped newlines, but in fact it
was added in the same patch that added support for escaped newlines.

The new FIXME makes it clear that we do currently support this, and that the
FIXME is for doing so in a less ad-hoc way.
2024-12-28 14:23:46 +11:00
Zalathar
3a4e82195e compiletest: Only pass the post-colon value to parse_normalize_rule 2024-12-28 13:57:13 +11:00
Michael Sloan
517d52dc36 Only include SCIP SymbolInformation for first inherent impl 2024-12-27 18:13:14 -07:00
Michael Sloan
df99392675 Message updates from review 2024-12-27 18:12:55 -07:00
Michael Sloan
77d5645692
Update crates/ide/src/moniker.rs
Co-authored-by: David Barsky <me@davidbarsky.com>
2024-12-27 15:58:32 -07:00
Michael Sloan
a239113bf4
Update crates/ide/src/moniker.rs
Co-authored-by: David Barsky <me@davidbarsky.com>
2024-12-27 15:58:26 -07:00
Erithax
b2531ba7a6
fix doc typo 2024-12-27 23:13:09 +01:00
Matthias Krüger
5b249f813b
Rollup merge of #134809 - clubby789:nocapture, r=jieyouxu
Add `--no-capture`/`--nocapture` as bootstrap arguments

I often try `x test ... --nocapture` => 'unknown argument' => `x test ... -- --nocapture`. As we forward several other compiletest flags, let's recognise this one in bootstrap as well.
2024-12-27 19:47:11 +01:00
Matthias Krüger
7ba9655cce
Rollup merge of #134808 - clubby789:compiletest-remove-stderr, r=jieyouxu
compiletest: Remove empty 'expected' files when blessing

Fixes #134793
Fixes #134196

This also refactors `compare_output` to return an enum; returning a usize was done for convenience but is misleading
2024-12-27 19:47:11 +01:00
许杰友 Jieyou Xu (Joe)
f65dc4f375
Rollup merge of #134816 - Integral-Tech:pathbuf-refactor, r=lqd
tools: fix build failure caused by PR #134420

Someone reports build failure after merging pull request #134420: https://github.com/rust-lang/rust/pull/134420#discussion_r1898081258

This pull request fixes the build failure.
2024-12-27 20:44:15 +08:00
clubby789
5bb727a66a compiletest: Remove/don't write empty 'expected' files 2024-12-27 12:11:52 +00:00
clubby789
bccc11e230 compiletest: Replace --nocapture with --no-capture 2024-12-27 12:10:55 +00:00
Ralf Jung
6383513249 also clean up eventfd code in the same vein 2024-12-27 12:32:04 +01:00
Ralf Jung
75209df948 add test for close-while-blocked 2024-12-27 12:18:09 +01:00
Ralf Jung
16cffc7275 bring socket logic back together and fix logic bug 2024-12-27 11:37:11 +01:00
Lukas Wirth
eea4a9ab9e
Merge pull request #18744 from gbbosak/master
Treat ; as a terminator rather part of a glued expression
2024-12-27 09:57:02 +00:00
Zalathar
835fbcbcab Remove the -test suffix from normalize directives 2024-12-27 19:58:16 +11:00
Zalathar
5ba0dd4ef6 Don't use parse_cfg_name_directive for normalize directives
This is a little more verbose, but also more explicit, and avoids invoking the
full condition engine when only the pointer-width conditions are used.
2024-12-27 19:58:14 +11:00
Ralf Jung
96cfa5f2fd clippy 2024-12-27 09:44:52 +01:00
Integral
c5e4b72a41
tools: fix build failure caused by PR #134420 2024-12-27 16:36:48 +08:00
The Miri Cronjob Bot
0ca3921747 Merge from rustc 2024-12-27 05:24:16 +00:00
The Miri Cronjob Bot
2a53a41d89 Preparing for merge from rustc 2024-12-27 05:16:46 +00:00
bors
917bfa7847 Auto merge of #134795 - GuillaumeGomez:rollup-9x8n7pi, r=GuillaumeGomez
Rollup of 4 pull requests

Successful merges:

 - #134656 (Migrate `incr-add-rust-src-component` to rmake)
 - #134664 (Account for removal of multiline span in suggestion)
 - #134772 (Improve/cleanup rustdoc code)
 - #134781 (Add more `begin_panic` normalizations to panic backtrace tests)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-12-26 21:04:12 +00:00
Guillaume Gomez
c016cd8670
Rollup merge of #134656 - jieyouxu:migrate-incr-add-rust-src-component, r=wesleywiser
Migrate `incr-add-rust-src-component` to rmake

This PR partially supersedes #128562, and ports the Makefile-based `tests/run-make/incr-add-rust-src-component` to use rmake.rs infra.

Part of #121876.

This run-make test is a regression test for https://github.com/rust-lang/rust/issues/70924. It (tries to) checks that if we add the `rust-src` component in between two incremental compiles, that the compiler doesn't ICE on the second invocation.

- Original issue:https://github.com/rust-lang/rust/issues/70924
- Fix PR: https://github.com/rust-lang/rust/pull/72767
- PR adding this regression test: https://github.com/rust-lang/rust/pull/72952

However, the Makefile version of this used `$SYSROOT/lib/rustlib/src/rust/src/libstd/lib.rs`, but that actually got moved around and reorganized over the years. As of Dec 2024, the `rust-src` component is more like (specific for our purposes):

```
$SYSROOT/lib/rustlib/src/rust/
    library/std/src/lib.rs
    src/
```

However, this run-make test is ancient and it exercises incr-comp system logic. I'm not sure if this test would actually catch the original regression.

This PR was co-authored with `@Oneirical.`

r? incremental

try-job: i686-msvc
try-job: x86_64-mingw-1
try-job: x86_64-msvc
try-job: aarch64-apple
2024-12-26 19:30:28 +01:00
bors
19e75f4fb3 Auto merge of #134788 - flip1995:clippy-subtree-update, r=matthiaskrgr
Clippy subtree update

r? `@Manishearth`
2024-12-26 18:19:55 +00:00
Lukas Wirth
352116ce97
Merge pull request #18762 from davidbarsky/davidbarsky/wrap-salsa-cancellation-error
internal: wrap `salsa::Cycle`
2024-12-26 15:42:53 +00:00
Lukas Wirth
bae8fb5c80
Merge pull request #18761 from Veykril/push-vktnzltnxupr
internal: Swallow `error: config value is not set` cargo error
2024-12-26 15:28:24 +00:00
David Barsky
637700e974 internal: wrap salsa::Cycle 2024-12-26 10:26:42 -05:00
Lukas Wirth
5290f20f08 internal: Swallow error: config value is not set cargo error 2024-12-26 16:13:39 +01:00
Philipp Krones
8a7d8ece32
Merge commit '609cd310be' into clippy-subtree-update 2024-12-26 15:15:54 +01:00
Lukas Wirth
27dd75d93c internal: Workaround salsa cycles leaking 2024-12-26 14:55:20 +01:00
bors
e2848a05a9 Auto merge of #134784 - RalfJung:miri-sync, r=RalfJung
Miri subtree update

r? `@ghost`
2024-12-26 13:02:16 +00:00
roife
e481a51feb minor: format editor/code 2024-12-26 20:44:42 +08:00
roife
d6ec36063f move env vars for snapshot tests to UpdateTest 2024-12-26 20:19:26 +08:00
roife
d938414a34 optimize snapshot-testing macro detection and add tests 2024-12-26 19:51:14 +08:00
roife
c8f29aad5e fix incorrect name for UpdateTest config 2024-12-26 19:51:14 +08:00
roife
c17dea99ff fix: await setting config to not ask before UpdateTest and format 2024-12-26 19:51:14 +08:00
roife
2bfa83beb3 feat: add config UpdateTest to hover actions 2024-12-26 19:51:14 +08:00
roife
147d1ddfd4 feat: support UpdateTest in hover actions and runnables 2024-12-26 19:51:14 +08:00
roife
60b4ed5bd3 feat: support UpdateTest in codelens 2024-12-26 19:50:32 +08:00
roife
08677cb70d feat: Add TestDefs to find usage of Expect, Insta and Snapbox 2024-12-26 19:21:06 +08:00
Michael Sloan
cd8522ef4e Use empty SymbolInformation.signature_documentation.relative_path
I'm fairly sure this is more correct, and saves space(~90mb to 82mb
for Zed's index). I'm checking in about this with SCIP folks in
https://github.com/sourcegraph/scip/pull/299.
2024-12-26 03:46:00 -07:00
Michael Sloan
bbc6242b4c Provide SCIP external_symbols + fix symbols provided with Document
Before this change `SymbolInformation` provided by a document was the
info for all encountered symbols that have not yet been emitted. So,
the symbol information on a `Document` was a mishmash of symbols
defined in the documents, symbols from other documents, and external
symbols.

After this change, the `SymbolInformation` on documents is just the
locals and defined symbols from the document.  All symbols referenced
and not from emitted documents are included in `external_symbols`.
2024-12-26 01:28:37 -07:00
Michael Sloan
b1c091c573 Improve SCIP symbols
In particular, the symbol generation before this change creates a lot
of symbols with the same name for different definitions. This change
makes progress on symbol uniqueness, but does not fix a couple cases
where it was unclear to me how to fix (see TODOs in `scip.rs`)

Behavior changes:

* `scip` command now reports symbol information omitted due to symbol
collisions. Iterating with this on a large codebase (Zed!) resulted in
the other improvements in this change.

* Generally fixes providing the path to nested definitions in
symbols. Instead of having special cases for a couple limited cases of
nesting, implements `Definition::enclosing_definition` and uses this
to walk definitions.

* Parameter variables are now treated like locals.

    - This fixes a bug where closure captures also received symbols
    scoped to the containing function.  To bring back parameter
    symbols I would want a way to filter these out, since they can
    cause symbol collisions.

    - Having symbols for them seems to be intentional in
    27e2eea54f, but no particular use is
    specified there. For the typical indexing purposes of SCIP I don't see
    why parameter symbols are useful or sensible, as function parameters
    are not referencable by anything but position. I can imagine they
    might be useful in representing diagnostics or something.

* Inherent impls are now represented as `impl#[SelfType]` - a type
named `impl` which takes a single type parameter.

* Trait impls are now represented as `impl#[SelfType][TraitType]` - a
type named `impl` which takes two type parameters.

* Associated types in traits and impls are now treated like types
instead of type parameters, and so are now suffixed with `#` instead
of wrapped with `[]`.  Treating them as type parameters seems to have
been intentional in 73d9c77f2a but it
doesn't make sense to me, so changing it.

* Static variables are now treated as terms instead of `Meta`, and so
receive `.` suffix instead of `:`.

* Attributes are now treated as `Meta` instead of `Macro`, and so
receive `:` suffix instead of `!`.

* `enclosing_symbol` is now provided for labels and generic params,
which are local symbols.

* Fixes a bug where presence of `'` causes a descriptor name to get
double wrapped in backticks, since both `fn new_descriptor` and
`scip::symbol::format_symbol` have logic for wrapping in
backticks. Solution is to simply delete the redundant logic.

* Deletes a couple tests in moniker.rs because the cases are
adequeately covered in scip.rs and the format for identifiers used in
moniker.rs is clunky with the new representation for trait impls
2024-12-25 21:51:58 -07:00
Ralf Jung
335f7f59c1 swap_typed_nonoverlapping: properly detect overlap even when swapping scalar values 2024-12-25 16:01:26 +01:00
Ralf Jung
7291b1eaf7 rename typed_swap → typed_swap_nonoverlapping 2024-12-25 10:53:03 +01:00
Ralf Jung
35f10b1e03 we generally make later flags overwrite earlier flags, so remove some logic guarding just against that 2024-12-25 10:50:48 +01:00
Ralf Jung
b109091cfd remove some flags that have been hard errors for a while 2024-12-25 10:50:48 +01:00
Ralf Jung
2de456151a show an error on some invalid flag combinations: TB + permissive provenance; strict provenance + native calls 2024-12-25 10:50:48 +01:00
Ralf Jung
00dfa3ba2d miri: add test for overlapping typed_swap 2024-12-25 10:45:48 +01:00