about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2024-12-26Use empty `SymbolInformation.signature_documentation.relative_path`Michael Sloan-9/+2
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-26Provide SCIP `external_symbols` + fix symbols provided with DocumentMichael Sloan-58/+146
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-25Improve SCIP symbolsMichael Sloan-270/+522
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 27e2eea54fbd1edeefa2b47ddd4f552a04b86582, 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 73d9c77f2aeed394cf131dce55807be2d3f54064 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-25Improve rustdoc codeGuillaume Gomez-24/+22
2024-12-25Auto merge of #134703 - poliorcetics:ab/push-ovsylkzsoxku, r=GuillaumeGomezbors-12/+10
nits: Cleanup of `librustdoc::clean::Cfg::simplify_with` r? `@GuillaumeGomez`
2024-12-25swap_typed_nonoverlapping: properly detect overlap even when swapping scalar ↵Ralf Jung-3/+25
values
2024-12-25rename typed_swap → typed_swap_nonoverlappingRalf Jung-12/+12
2024-12-25we generally make later flags overwrite earlier flags, so remove some logic ↵Ralf Jung-18/+3
guarding just against that
2024-12-25remove some flags that have been hard errors for a whileRalf Jung-9/+0
2024-12-25show an error on some invalid flag combinations: TB + permissive provenance; ↵Ralf Jung-17/+21
strict provenance + native calls
2024-12-25miri: add test for overlapping typed_swapRalf Jung-0/+28
2024-12-25Auto merge of #134738 - clubby789:forbid-output-ui, r=jieyouxubors-2/+4
compiletest: Support `forbid-output` in UI tests The `forbid-output` directive is currently only run in incremental tests (although no incremental tests use it). There are some UI tests 'using' it, but it's doing nothing 😄 Let's fix this Will also PR the dev guide to note this. dev-guide PR: https://github.com/rust-lang/rustc-dev-guide/pull/2171
2024-12-25Auto merge of #134748 - DianQK:rollup-3y5fzcx, r=DianQKbors-0/+211
Rollup of 3 pull requests Successful merges: - #134525 (Arbitrary self types v2: unstable doc updates.) - #134735 (Consider arm to diverge if guard diverges) - #134741 (Actually print all the relevant parts of a coroutine in verbose mode) r? `@ghost` `@rustbot` modify labels: rollup
2024-12-25Rollup merge of #134525 - adetaylor:unstable-book-changes, r=wesleywiserDianQK-0/+211
Arbitrary self types v2: unstable doc updates. Document these two feature flags. Part of #44874 .
2024-12-25Auto merge of #134747 - weihanglo:update-cargo, r=weihanglobors-0/+0
Update cargo 6 commits in 652623b779c88fe44afede28bf7f1c9c07812511..c86f4b3a1b153218e6e50861214b0b4b4e695f23 2024-12-20 15:44:42 +0000 to 2024-12-24 17:49:48 +0000 - fix(package): check dirtiness of path fields in manifest (rust-lang/cargo#14966) - test: make path arguments more generic and flexible (rust-lang/cargo#14979) - Moved manifest metadata tracking from fingerprint to dep info (rust-lang/cargo#14973) - fix: assure possibly blocking non-files (like FIFOs) won't be picked up for publishing. (rust-lang/cargo#14977) - simplify SourceID Hash (rust-lang/cargo#14800) - upgrade `gix` to the latest release 0.69. (rust-lang/cargo#14975)
2024-12-24Update cargoWeihang Lo-0/+0
2024-12-25Auto merge of #134729 - oliveredget:typo, r=jieyouxubors-1/+1
chore: fix typos Fix some typos, thank you very much.
2024-12-25compiletest: Support `forbid-output` in UI testsclubby789-2/+4
2024-12-25fix missing name enum when hovering on fields in variantsroife-3/+14
2024-12-24fix: Fix metrics workflow using the wrong download-artifact versionLukas Wirth-1/+1
2024-12-24Merge pull request #18743 from ChayimFriedman2/e0107Lukas Wirth-275/+881
feat: Unify handling of path diagnostics in hir-ty
2024-12-24Merge pull request #18754 from Veykril/push-zkkzxrsxnqnmLukas Wirth-140/+209
Cleanup target fetching for cargo metadata
2024-12-24Unify handling of path diagnostics in hir-tyChayim Refael Friedman-247/+848
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-24Cleanup target fetching for cargo metadataLukas Wirth-140/+209
2024-12-24Auto merge of #134724 - onur-ozkan:type-improvements, r=jieyouxubors-53/+34
improve type mutation for certain structures self-explanatory
2024-12-24chore: fix typosoliveredget-1/+1
2024-12-24Merge pull request #18707 from ChayimFriedman2/substLukas Wirth-186/+1015
feat: Show substitution where hovering over generic things
2024-12-24Merge pull request #18718 from Giga-Bowser/fix-syntaxfactory-intoiteratorLukas Wirth-16/+28
internal: Standardize how we take iterator parameters in `SyntaxFactory`
2024-12-24Merge pull request #18722 from markmurphydev/status_bar_settingsLukas Wirth-35/+62
Rename `rust-analyzer.statusBar.documentSelector` to `showStatusBar`, add "always" and "never" options.
2024-12-24improve type mutation for certain structuresonur-ozkan-53/+34
self-explanatory Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-12-24Merge pull request #18750 from Veykril/push-tyvtqpwrwvsrLukas Wirth-103/+7
Back out "internal: Disable rustc test metrics"
2024-12-24Back out "internal: Disable rustc test metrics"Lukas Wirth-2/+7
This backs out commit d9a08624aad55a91f839e6ee3acf7117d197cda9.
2024-12-24Remove dangling outdated test moduleLukas Wirth-101/+0
2024-12-24Merge pull request #18749 from PrototypeNM1/windows-debugger-waitLukas Wirth-7/+25
minor: Break out of waiting for debugger on Windows using native debugger check API.
2024-12-24Auto merge of #134625 - compiler-errors:unsafe-binders-ty, r=oli-obkbors-2/+8
Begin to implement type system layer of unsafe binders Mostly TODOs, but there's a lot of match arms that are basically just noops so I wanted to split these out before I put up the MIR lowering/projection part of this logic. r? oli-obk Tracking: - https://github.com/rust-lang/rust/issues/130516
2024-12-24nit: cleanups in `Cfg::simplify_with`Alexis (Poliorcetics) Bourget-12/+10
2024-12-23minor: Break out of waiting for debugger on Windows using native debugger ↵Nicholas Rishel-7/+25
check API. For Windows, this removes the need to add a breakpoint and modify a value to exit the debugger wait loop. As a ridealong, this adds a 100ms sleep for all platforms such that waiting for the debugger doesn't hog the CPU thread.
2024-12-23Auto merge of #134405 - rmehri01:x-completions, r=onur-ozkanbors-2/+5952
Generate shell completions for x as well It would be nice to be have shell completions for both `./x` and `x` (installed with `cargo install --path src/tools/x`) instead of just `x.py`. This pr generates the corresponding completions for each shell in a similar way to `x.py` but under `x.<shell>` instead.
2024-12-23Auto merge of #134687 - matthiaskrgr:rollup-m32tkax, r=matthiaskrgrbors-1/+21
Rollup of 5 pull requests Successful merges: - #134363 (Use `#[derive(Default)]` instead of manual `impl` when possible) - #134517 (Add tests for coverage attribute on trait functions) - #134528 (opt-dist: propagate channel info to bootstrap) - #134669 (Document the `--dev` flag for `src/ci/docker/run.sh`) - #134680 (Clean up a few rmake tests ) r? `@ghost` `@rustbot` modify labels: rollup
2024-12-23use std::sync::Once instead of hand-rolling a bad version of itRalf Jung-13/+12
2024-12-23many-seeds: add flag to keep going even after we found a failing seedRalf Jung-7/+24
2024-12-23stop using process-wide state, now that we are running multiple interpreters ↵Ralf Jung-47/+47
in the same thread
2024-12-23Rollup merge of #134669 - clubby789:dev-ci-mode, r=jieyouxuMatthias Krüger-0/+4
Document the `--dev` flag for `src/ci/docker/run.sh` This flag is very helpful for debugging CI issues locally, but it's not documented anywhere and I wasn't aware of it until `@jieyouxu` pointed it out. Add a note to the CI Docker readme to make this more discoverable
2024-12-23Rollup merge of #134528 - jieyouxu:fix-rustc-bootstrap-test, r=KobzolMatthias Krüger-1/+17
opt-dist: propagate channel info to bootstrap Fixes #133503. Previously, `tests/ui/bootstrap/rustc_bootstap.rs` [sic] failed during [beta bump](https://github.com/rust-lang/rust/pull/133447#issuecomment-2501298794) in opt-dist tests. This is because: - `opt-dist` tried to run `./x test` against beta-channel dist `rustc` through `bootstrap`. - The dist build produced during the beta bump produces a `rustc` which correctly thinks that it is a beta compiler based on `src/ci/channel` info. - `opt-dist` tries to run `./x test` on the beta `rustc` from the dist build, but without specifying channel through a synthetic `config.toml`, so `bootstrap` tells `compiletest` that we're on the `nightly` channel (by default). - Now there's a channel mismatch: `compiletest` believes the `rustc` under test is a *nightly* rustc, but the `rustc` under test actually considers itself a *beta* rustc. This means that `//@ only-nightly` will be satisfied yet the test will fail as the *beta* rustc is not a *nightly* rustc. This PR: - Fixes the test failure during beta bump (i.e. #133503) by having `opt-dist` faithfully report the channel of the dist `rustc` being tested (i.e. "beta" in a beta bump PR). This will properly make the test be ignored during beta bump as the `rustc` under test is not a *nightly* rustc. - Fixes the test name `rustc_bootstap.rs` -> `rustc_bootstrap.rs`. No more stapping. - Slightly adjusts the doc comment in the test to make it more clear. I ran a try-job against the beta branch (explicitly running the opt-dist tests by modifying the job definition) with these changes in #134131, and it appears that the try-job was [successful](https://github.com/rust-lang/rust/pull/134131#issuecomment-2555492215). The two commits in this PR are cherry-picked from #134131, with the test commit slightly modified (to also adjust the test comments). r? `@Kobzol` (or compiler or bootstrap or infra I guess?)
2024-12-23remove --many-seeds from ./miri runRalf Jung-120/+30
2024-12-23remove many-seeds mode from cargo-miriRalf Jung-182/+104
2024-12-23add -Zmiri-many-seeds flag to the driver itselfRalf Jung-94/+172
2024-12-23tests: migrate `incr-add-rust-src-component` to rmake.rs许杰友 Jieyou Xu (Joe)-1/+0
The Makefile version seems to contain a bug. Over the years, the directory structure of the `rust-src` component changed as the source tree directory structure changed. `libstd` is no longer a thing directly under `root/lib/rustlib/src/rust/src/`, it is moved to `root/lib/rustlib/src/rust/library/std`. Co-authored-by: Oneirical <manchot@videotron.ca>
2024-12-23Auto merge of #134681 - lnicola:sync-from-ra, r=lnicolabors-2151/+3082
Subtree update of `rust-analyzer` r? `@ghost`
2024-12-23Link to dev guide on Docker testingclubby789-0/+4