Commit graph

32939 commits

Author SHA1 Message Date
Lukas Wirth
bb921fbe94 Show variance of parameters on hover 2024-12-28 20:31:20 +01:00
Lukas Wirth
60e28c6bd9 Simplify 2024-12-28 19:54:22 +01:00
Lukas Wirth
9419e199d8 Get rid of constrain and solve steps 2024-12-28 19:54:22 +01:00
Lukas Wirth
85119b528a Remove unnecessary VarianceTerm 2024-12-28 19:54:22 +01:00
Lukas Wirth
eee2761140 Implement parameter variance inference 2024-12-28 19:54:22 +01:00
Lukas Wirth
dc6cea57a2
Merge pull request #18778 from Veykril/push-oontvoqmxkno
fix: Fix flycheck diagnostics flickering for binary targets
2024-12-28 17:31:11 +00:00
Lukas Wirth
17b3662755 Add DynTyExt::principal_id 2024-12-28 18:26:45 +01:00
Lukas Wirth
c800485555 Downgrade salsa log levels 2024-12-28 18:23:24 +01:00
Lukas Wirth
cf307438bc fix: Fix flycheck diagnostics flickering for binary targets 2024-12-28 18:16:55 +01:00
bors
0559d96696 Auto merge of #134790 - onur-ozkan:cfg-test, r=clubby789
replace bootstrap-self-test feature flag with cfg(test)

This makes it in more rusty way.
2024-12-28 16:37:13 +00:00
bors
6d1b679c81 Auto merge of #134547 - SUPERCILEX:unify-copy, r=thomcc
Unify fs::copy and io::copy on Linux

Currently, `fs::copy` first tries a regular file copy (via copy_file_range) and then falls back to userspace read/write copying. We should use `io::copy` instead as it tries copy_file_range, sendfile, and splice before falling back to userspace copying. This was discovered here: https://github.com/SUPERCILEX/fuc/issues/40

Perf impact: `fs::copy` will now have two additional statx calls to decide which syscall to use. I wonder if we should get rid of the statx calls and only continue down the next fallback when the relevant syscalls say the FD isn't supported.
2024-12-28 13:49:45 +00:00
Michael Sloan
34dc94bb2d Only include SCIP SymbolInformation for first inherent impl 2024-12-27 18:13:14 -07:00
Michael Sloan
3a93fe1150 Message updates from review 2024-12-27 18:12:55 -07:00
Michael Sloan
f8ea9cace8
Update crates/ide/src/moniker.rs
Co-authored-by: David Barsky <me@davidbarsky.com>
2024-12-27 15:58:32 -07:00
Michael Sloan
eb4543818d
Update crates/ide/src/moniker.rs
Co-authored-by: David Barsky <me@davidbarsky.com>
2024-12-27 15:58:26 -07:00
Laurențiu Nicola
d3bb15ecec
Merge pull request #18770 from Erithax/patch-1
fix doc typo
2024-12-27 22:28:38 +00:00
Erithax
c7f5021de1
fix doc typo 2024-12-27 23:13:09 +01:00
Lukas Wirth
a77cf8e189
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
Lukas Wirth
1ce4de2585
Merge pull request #18762 from davidbarsky/davidbarsky/wrap-salsa-cancellation-error
internal: wrap `salsa::Cycle`
2024-12-26 15:42:53 +00:00
bors
36341eaecb Auto merge of #134774 - jyn514:rustc-dev-short-backtraces, r=jieyouxu
fix default-backtrace-ice test

when running `tests/ui/panics/default-backtrace-ice.rs locally it gave this error:
```
failures:

---- [ui] tests/ui/panics/default-backtrace-ice.rs stdout ----
Saved the actual stderr to "/home/jyn/src/rust3/build/x86_64-unknown-linux-gnu/test/ui/panics/default-backtrace-ice/default-backtrace-ice.stderr"
diff of stderr:

7
8	aborting due to `-Z treat-err-as-bug=1`
9	stack backtrace:
-	(end_short_backtrace)
-	(begin_short_backtrace)
-	(end_short_backtrace)
-	(begin_short_backtrace)
+	      [... omitted 22 frames ...]
+
```
(note that you must *not* use --bless; we previously did not have an error annotation to verify it was a full backtrace instead of a short backtrace.)

this is a regression from setting RUST_BACKTRACE=1 by default in https://github.com/rust-lang/rust/pull/134743. we need to turn off the new behavior when running UI tests so that they reflect our dist compiler. normally that's done by checking `sess.unstable_opts.ui_testing`, but this happens extremely early in the compiler before we've expanded arg files. do an extremely simple hack that doesn't work in all cases - we don't need it to work in all cases, only when running UI tests.

cc https://github.com/rust-lang/rust/pull/129658#issuecomment-2561988081

r? `@jieyouxu`
2024-12-26 15:41:37 +00:00
Lukas Wirth
7514a92018
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
3ff2596c3f internal: wrap salsa::Cycle 2024-12-26 10:26:42 -05:00
Lukas Wirth
e820c4da90 internal: Swallow error: config value is not set cargo error 2024-12-26 16:13:39 +01:00
Lukas Wirth
d12a89b16d
Merge pull request #18760 from Veykril/push-tkvlvvqyszrs
internal: Workaround salsa cycles leaking
2024-12-26 14:09:49 +00:00
Lukas Wirth
ed8227c649 internal: Workaround salsa cycles leaking 2024-12-26 14:55:20 +01:00
bors
0a70ac899e Auto merge of #134784 - RalfJung:miri-sync, r=RalfJung
Miri subtree update

r? `@ghost`
2024-12-26 13:02:16 +00:00
roife
2983ce8b9e minor: format editor/code 2024-12-26 20:44:42 +08:00
roife
bba8d2dc02 move env vars for snapshot tests to UpdateTest 2024-12-26 20:19:26 +08:00
roife
1dcce45f48 optimize snapshot-testing macro detection and add tests 2024-12-26 19:51:14 +08:00
roife
c54bfcb181 fix incorrect name for UpdateTest config 2024-12-26 19:51:14 +08:00
roife
c30e9c0618 fix: await setting config to not ask before UpdateTest and format 2024-12-26 19:51:14 +08:00
roife
22280b65ff feat: add config UpdateTest to hover actions 2024-12-26 19:51:14 +08:00
roife
57cd0d5dbe feat: support UpdateTest in hover actions and runnables 2024-12-26 19:51:14 +08:00
roife
edb61b10ab feat: support UpdateTest in codelens 2024-12-26 19:50:32 +08:00
roife
dd788255b4 feat: Add TestDefs to find usage of Expect, Insta and Snapbox 2024-12-26 19:21:06 +08:00
Michael Sloan
d650daa7d3 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
124c8318a4 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
17c90f71bf 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
bors
70b803e8c5 Auto merge of #134703 - poliorcetics:ab/push-ovsylkzsoxku, r=GuillaumeGomez
nits: Cleanup of `librustdoc::clean::Cfg::simplify_with`

r? `@GuillaumeGomez`
2024-12-25 16:56:32 +00:00
Lukas Wirth
bfc223e857
Merge pull request #18756 from roife/fix-18751
fix missing name enum when hovering on fields in variants
2024-12-25 05:54:21 +00:00
roife
5a3d1a6d0d fix missing name enum when hovering on fields in variants 2024-12-25 07:28:26 +08:00
bors
b876fe7e11 Auto merge of #134333 - daxpedda:stdarch-bump, r=daxpedda
Bump `stdarch`

This bumps `stdarch` to 684de0d6fe to get in https://github.com/rust-lang/stdarch/pull/1677 (tracked in https://github.com/rust-lang/rust/issues/133908).

From the [commit history](e5e00aab0a...684de0d6fe) I deduced that there shouldn't be any changes to Rust necessary.

From past PRs I'm assuming that bumping `stdarch` like this is fine, but please let me know if this is somehow inappropriate or requires something more to be done!

try-job: arm-android
try-job: armhf-gnu
2024-12-24 19:19:48 +00:00
Lukas Wirth
dc90d2d7ff
Merge pull request #18755 from Veykril/push-psllyxqtywzs
fix: Fix metrics workflow using the wrong download-artifact version
2024-12-24 18:14:12 +00:00
Lukas Wirth
e12f247783 fix: Fix metrics workflow using the wrong download-artifact version 2024-12-24 18:59:49 +01:00
Lukas Wirth
493ac4d4df
Merge pull request #18743 from ChayimFriedman2/e0107
feat: Unify handling of path diagnostics in hir-ty
2024-12-24 17:13:07 +00:00
Lukas Wirth
79d9330560
Merge pull request #18754 from Veykril/push-zkkzxrsxnqnm
Cleanup target fetching for cargo metadata
2024-12-24 17:03:31 +00:00
Chayim Refael Friedman
cc11e1a796 Unify handling of path diagnostics in hir-ty
Because it was a mess.

Previously, pretty much you had to handle all path diagnostics manually: remember to check for them and handle them. Now, we wrap the resolver in `TyLoweringContext` and ensure proper error reporting.

This means that you don't have to worry about them: most of the things are handled automatically, and things that cannot will create a compile-time error (forcing you top `drop(ty_lowering_context);`) if forgotten, instead of silently dropping the diagnostics.

The real place for error reporting is in the hir-def resolver, because there are other things resolving, both in hir-ty and in hir-def, and they all need to ensure proper diagnostics. But this is a good start, and future compatible.

This commit also ensures proper path diagnostics for value/pattern paths, which is why it's marked "feat".
2024-12-24 18:58:52 +02:00
Lukas Wirth
029261f9cc Cleanup target fetching for cargo metadata 2024-12-24 17:49:07 +01:00
bors
9ef1882d12 Auto merge of #134724 - onur-ozkan:type-improvements, r=jieyouxu
improve type mutation for certain structures

self-explanatory
2024-12-24 16:40:11 +00:00
Lukas Wirth
e30ce42671
Merge pull request #18707 from ChayimFriedman2/subst
feat: Show substitution where hovering over generic things
2024-12-24 14:16:16 +00:00