about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2022-02-10Remove support for multi-query searchGuillaume Gomez-107/+6
2022-02-10Rollup merge of #93830 - camelid:cleanup-section-code, r=GuillaumeGomezMatthias Krüger-82/+172
Refactor sidebar printing code This is the refactoring parts of #92660, plus the trait aliases capitalization consistency fix. I think this will be necessary for #92658. r? `@GuillaumeGomez`
2022-02-10Rollup merge of #93824 - Amanieu:stable_cfg_target_has_atomic, r=davidtwcoMatthias Krüger-392/+72
Stabilize cfg_target_has_atomic `target_has_atomic_equal_alignment` is now tracked separately in #93822. Closes #32976
2022-02-10Rollup merge of #93808 - GuillaumeGomez:headings-indent, r=jshaMatthias Krüger-105/+18
Remove first headings indent Fixes https://github.com/rust-lang/rust/issues/92975. I removed the anchors displayed on hover because the cursor changes when you hover them in any case, removing the need for the indent altogether. [Demo](https://rustdoc.crud.net/imperio/headings-indent/std/index.html). Screenshot of the result: ![Screenshot from 2022-02-09 14-46-12](https://user-images.githubusercontent.com/3050060/153213824-74ef0b62-4f2b-4816-8912-6f2f3beacd29.png) r? `@jsha`
2022-02-10Rollup merge of #93802 - lcnr:mcg-woops, r=BoxyUwUMatthias Krüger-0/+29
fix oversight in the `min_const_generics` checks r? `@BoxyUwU`
2022-02-10Rollup merge of #93756 - tmandry:llvm-build-config, r=Mark-SimulacrumMatthias Krüger-0/+8
Support custom options for LLVM build The LLVM build has a lot of options that rustbuild doesn't need to know about. We should allow the user to customize the LLVM build directly. Here are some [example customizations][recipe] we'd like to do. [recipe]: https://fuchsia.googlesource.com/infra/recipes/+/90105e5e4e37b0441c8dde538df54a55f79b3d22/recipes/contrib/clang_toolchain.py#579
2022-02-10Rollup merge of #92670 - hermitcore:kernel, r=davidtwcoMatthias Krüger-3/+82
add kernel target for RustyHermit Currently, we are thinking to use *-unknown-none targets instead to define for every platform our own one (see hermitcore/rusty-hermit#197). However, the current target aarch64-unknown-none-softfloat doesn't support dynamic relocation. Our RustyHermit project uses this feature and consequently we define a new target aarch64-unknown-hermitkernel to support it. > A tier 3 target must have a designated developer or developers (the "target maintainers") on record to be CCed when issues arise regarding the target. (The mechanism to track and CC such developers may evolve over time.) I would be willing to be a target maintainer, though I would appreciate if others volunteered to help with that as well. > Targets must use naming consistent with any existing targets; for instance, a target for the same CPU or OS as an existing Rust target should use the same name for that CPU or OS. Targets should normally use the same names and naming conventions as used elsewhere in the broader ecosystem beyond Rust (such as in other toolchains), unless they have a very good reason to diverge. Changing the name of a target can be highly disruptive, especially once the target reaches a higher tier, so getting the name right is important even for a tier 3 target. Uses the same naming as the LLVM target, and the same convention as many other kernel targets (e.g. `x86_64_unknown_none_linuxkernel`). In contrast to the bare-metal target for the aarch64 architecture, the unikernel requires dynamic relocation. > Target names should not introduce undue confusion or ambiguity unless absolutely necessary to maintain ecosystem compatibility. For example, if the name of the target makes people extremely likely to form incorrect beliefs about what it targets, the name should be changed or augmented to disambiguate it. I don't believe there is any ambiguity here. It use the same convention on x86_64 architecture. > Tier 3 targets may have unusual requirements to build or use, but must not create legal issues or impose onerous legal terms for the Rust project or for Rust developers or users. I don't see any legal issues here. > The target must not introduce license incompatibilities. Anything added to the Rust repository must be under the standard Rust license (MIT OR Apache-2.0). The target must not cause the Rust tools or libraries built for any other host (even when supporting cross-compilation to the target) to depend on any new dependency less permissive than the Rust licensing policy. This applies whether the dependency is a Rust crate that would require adding new license exceptions (as specified by the tidy tool in the rust-lang/rust repository), or whether the dependency is a native library or binary. In other words, the introduction of the target must not cause a user installing or running a version of Rust or the Rust tools to be subject to any new license requirements. If the target supports building host tools (such as rustc or cargo), those host tools must not depend on proprietary (non-FOSS) libraries, other than ordinary runtime libraries supplied by the platform and commonly used by other binaries built for the target. For instance, rustc built for the target may depend on a common proprietary C runtime library or console output library, but must not depend on a proprietary code generation library or code optimization library. Rust's license permits such combinations, but the Rust project has no interest in maintaining such combinations within the scope of Rust itself, even at tier 3. Targets should not require proprietary (non-FOSS) components to link a functional binary or library. "onerous" here is an intentionally subjective term. At a minimum, "onerous" legal/licensing terms include but are not limited to: non-disclosure requirements, non-compete requirements, contributor license agreements (CLAs) or equivalent, "non-commercial"/"research-only"/etc terms, requirements conditional on the employer or employment of any particular Rust developers, revocable terms, any requirements that create liability for the Rust project or its developers or users, or any requirements that adversely affect the livelihood or prospects of the Rust project or its developers or users. I see no issues with any of the above. > Neither this policy nor any decisions made regarding targets shall create any binding agreement or estoppel by any party. If any member of an approving Rust team serves as one of the maintainers of a target, or has any legal or employment requirement (explicit or implicit) that might affect their decisions regarding a target, they must recuse themselves from any approval decisions regarding the target's tier status, though they may otherwise participate in discussions. This requirement does not prevent part or all of this policy from being cited in an explicit contract or work agreement (e.g. to implement or maintain support for a target). This requirement exists to ensure that a developer or team responsible for reviewing and approving a target does not face any legal threats or obligations that would prevent them from freely exercising their judgment in such approval, even if such judgment involves subjective matters or goes beyond the letter of these requirements. Only relevant to those making approval decisions. > Tier 3 targets should attempt to implement as much of the standard libraries as possible and appropriate (core for most targets, alloc for targets that can support dynamic memory allocation, std for targets with an operating system or equivalent layer of system-provided functionality), but may leave some code unimplemented (either unavailable or stubbed out as appropriate), whether because the target makes it impossible to implement or challenging to implement. The authors of pull requests are not obligated to avoid calling any portions of the standard library on the basis of a tier 3 target not implementing those portions. `core` and `alloc` can be used. For `std` exists already the target `aarch64_unknown_hermit`, which enables FPU support. > The target must provide documentation for the Rust community explaining how to build for the target, using cross-compilation if possible. If the target supports running tests (even if they do not pass), the documentation must explain how to run tests for the target, using emulation if possible or dedicated hardware if necessary. Use `--target=aarch64_unknown_hermitkernel` option to cross compile. The target does currently not support running tests. > Tier 3 targets must not impose burden on the authors of pull requests, or other developers in the community, to maintain the target. In particular, do not post comments (automated or manual) on a PR that derail or suggest a block on the PR based on a tier 3 target. Do not send automated messages or notifications (via any medium, including via `@)` to a PR author or others involved with a PR regarding a tier 3 target, unless they have opted into such messages. Backlinks such as those generated by the issue/PR tracker when linking to an issue or PR are not considered a violation of this policy, within reason. However, such messages (even on a separate repository) must not generate notifications to anyone involved with a PR who has not requested such notifications. I don't foresee this being a problem. > Patches adding or updating tier 3 targets must not break any existing tier 2 or tier 1 target, and must not knowingly break another tier 3 target without approval of either the compiler team or the maintainers of the other tier 3 target. In particular, this may come up when working on closely related targets, such as variations of the same architecture with different features. Avoid introducing unconditional uses of features that another variation of the target may not have; use conditional compilation or runtime detection, as appropriate, to let each target run code supported by that target. No other targets should be affected by the pull request.
2022-02-10Auto merge of #93511 - cjgillot:query-copy, r=oli-obkbors-1/+1
Ensure that queries only return Copy types. This should pervent the perf footgun of returning a result with an expensive `Clone` impl (like a `Vec` of a hash map). I went for the stupid solution of allocating on an arena everything that was not `Copy`. Some query results could be made Copy easily, but I did not really investigate.
2022-02-09rustdoc: fix spacing of non-toggled impl blocksJacob Hoffman-Andrews-3/+23
We recently removed the "up here" arrows on item-infos, and adjusted vertical spacing so that even without the arrow, it would be visually clear which item the item-info belonged to. The new CSS styles for vertical spacing only applied to toggles, though. This missed non-toggled impl blocks - for instance, those without any methods, like https://doc.rust-lang.org/nightly/std/marker/trait.Send.html#implementors. The result was lists of implementors that were spaced too closely. This PR fixes the spacing by making it apply to non-toggled impl blocks as well. This also fixes an issue where item-infos were displayed too far below their items. That was a result of display: table on .item-info .stab. Changed that to display: inline-block.
2022-02-10fix min_const_generics oversightlcnr-0/+29
2022-02-09Add llvm.build-config optionTyler Mandry-0/+8
2022-02-09Rollup merge of #93753 - jeremyBanks:main-conflict, r=petrochenkovMatthias Krüger-0/+35
Complete removal of #[main] attribute from compiler resolves #93786 --- The `#[main]` attribute was mostly removed from the language in #84217, but not completely. It is still recognized as a builtin attribute by the compiler, but it has no effect. However, this no-op attribute is no longer gated by `#[feature(main)]` (which no longer exists), so it's possible to include it in code *on stable* without any errors, which seems unintentional. For example, the following code is accepted ([playground link](https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&code=%23%5Bmain%5D%0Afn%20main()%20%7B%0A%20%20%20%20println!(%22hello%20world%22)%3B%0A%7D%0A)). ```rust #[main] fn main() { println!("hello world"); } ``` Aside from that oddity, the existence of this attribute causes code like the following to fail ([playground link](https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&code=use%20tokio%3A%3Amain%3B%0A%0A%23%5Bmain%5D%0Afn%20main()%20%7B%0A%20%20%20%20println!(%22hello%20world%22)%3B%0A%7D%0A)). According https://github.com/rust-lang/rust/pull/84062#issuecomment-825038275, the removal of `#[main]` was expected to eliminate this conflict (previously reported as #62127). ```rust use tokio::main; #[main] fn main() { println!("hello world"); } ``` ``` error[E0659]: `main` is ambiguous --> src/main.rs:3:3 | 3 | #[main] | ^^^^ ambiguous name | = note: ambiguous because of a name conflict with a builtin attribute = note: `main` could refer to a built-in attribute ``` [This error message can be confusing](https://stackoverflow.com/q/71024443/1114), as the mostly-removed `#[main]` attribute is not mentioned in any documentation. Since the current availability of `#[main]` on stable seems unintentional, and to needlessly block use of the `main` identifier in the attribute namespace, this PR finishes removing the `#[main]` attribute as described in https://github.com/rust-lang/rust/issues/29634#issuecomment-274951753 by deleting it from `builtin_attrs.rs`, and adds two test cases to ensure that the attribute is no longer accepted and no longer conflicts with other attributes imported as `main`.
2022-02-09Rollup merge of #93503 - ↵Matthias Krüger-26/+49
michaelwoerister:fix-vtable-holder-debuginfo-regression, r=wesleywiser debuginfo: Fix DW_AT_containing_type vtable debuginfo regression This PR brings back the `DW_AT_containing_type` attribute for vtables after it has accidentally been removed in #89597. It also implements a more accurate description of vtables. Instead of describing them as an array of void pointers, the compiler will now emit a struct type description with a field for each entry of the vtable. r? ``@wesleywiser`` This PR should fix issue https://github.com/rust-lang/rust/issues/93164. ~~The PR is blocked on https://github.com/rust-lang/rust/pull/93154 because both of them modify the `codegen/debug-vtable.rs` test case.~~
2022-02-09Rollup merge of #91504 - cynecx:used_retain, r=nikicMatthias Krüger-0/+89
`#[used(linker)]` attribute See https://github.com/dtolnay/linkme/issues/41#issuecomment-927255631.
2022-02-09Update dist-arm-linux to Ubuntu 20.04Nikita Popov-13/+0
I believe this should be safe, as actual artifacts will be produced by a cross toolchain. The build ran through cleanly locally.
2022-02-09Title-case trait aliases section for consistencyNoah Lev-2/+2
2022-02-09Refactor sidebar printing codeNoah Lev-40/+48
The new code is much simpler and easier to understand. In fact, the old code actually had a subtle bug where it excluded a few item types, including trait aliases, from the sidebar, even though they are rendered on the page itself! Now, all sections should show up in the sidebar.
2022-02-09Deduplicate item sectionsNoah Lev-22/+13
2022-02-09rustdoc: Create enum for sections holding itemsNoah Lev-37/+128
2022-02-09Ensure that queries only return Copy types.Camille GILLOT-1/+1
2022-02-09Stabilize cfg_target_has_atomicAmanieu d'Antras-392/+72
Closes #32976
2022-02-09Suggest collecting into `Vec<_>` when collecting into `[_]`Michael Goulet-0/+41
2022-02-09rustdoc-json: Add some tests for `typealias` itemNixon Enraght-Moony-0/+82
2022-02-09jsondocck: Improved error messages for invalid json value and failed @count ↵Nixon Enraght-Moony-2/+16
check
2022-02-09Update rustdoc tests for headings indentGuillaume Gomez-79/+13
2022-02-09Unify headings indent and remove useless anchorGuillaume Gomez-33/+12
2022-02-09Move tests into attributes directory to pacify tidyNikita Popov-0/+0
2022-02-09Add tracking issueNikita Popov-0/+2
2022-02-09Add a bit more padding on search padding and reduce its font sizeGuillaume Gomez-1/+1
2022-02-09Auto merge of #92306 - Aaron1011:opaque-type-op, r=oli-obkbors-11/+62
Improve opaque type higher-ranked region error message under NLL Currently, any higher-ranked region errors involving opaque types fall back to a generic "higher-ranked subtype error" message when run under NLL. This PR adds better error message handling for this case, giving us the same kinds of error messages that we currently get without NLL: ``` error: implementation of `MyTrait` is not general enough --> $DIR/opaque-hrtb.rs:12:13 | LL | fn foo() -> impl for<'a> MyTrait<&'a str> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ implementation of `MyTrait` is not general enough | = note: `impl MyTrait<&'2 str>` must implement `MyTrait<&'1 str>`, for any lifetime `'1`... = note: ...but it actually implements `MyTrait<&'2 str>`, for some specific lifetime `'2` error: aborting due to previous error ``` To accomplish this, several different refactoring needed to be made: * We now have a dedicated `InstantiateOpaqueType` struct which implements `TypeOp`. This is used to invoke `instantiate_opaque_types` during MIR type checking. * `TypeOp` is refactored to pass around a `MirBorrowckCtxt`, which is needed to report opaque type region errors. * We no longer assume that all `TypeOp`s correspond to canonicalized queries. This allows us to properly handle opaque type instantiation (which does not occur in a query) as a `TypeOp`. A new `ErrorInfo` associated type is used to determine what additional information is used during higher-ranked region error handling. * The body of `try_extract_error_from_fulfill_cx` has been moved out to a new function `try_extract_error_from_region_constraints`. This allows us to re-use the same error reporting code between canonicalized queries (which can extract region constraints directly from a fresh `InferCtxt`) and opaque type handling (which needs to take region constraints from the pre-existing `InferCtxt` that we use throughout MIR borrow checking).
2022-02-09Auto merge of #93795 - JohnTitor:rollup-n0dmsoo, r=JohnTitorbors-114/+116
Rollup of 7 pull requests Successful merges: - #93445 (Add From<u8> for ExitCode) - #93694 (rustdoc: tweak line spacing and paragraph spacing for accessibility) - #93735 (Stabilize int_abs_diff in 1.60.0.) - #93746 (Remove defaultness from ImplItem.) - #93748 (rustc_query_impl: reduce visibility of some modules/fn's) - #93751 (Drop tracking: track borrows of projections) - #93781 (update `ty::TyKind` documentation) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2022-02-09Rollup merge of #93751 - eholk:issue-93648-drop-tracking-projection, r=tmiaskoYuki Okushi-0/+12
Drop tracking: track borrows of projections Previous efforts to ignore partially consumed values meant we were also not considering borrows of a projection. This led to cases where we'd miss borrowed types which MIR expected to be there, leading to ICEs. This PR also includes the `-Zdrop-tracking` flag from #93313. If that PR lands first, I'll rebase to drop the commit from this one. Fixes #93648
2022-02-09Rollup merge of #93746 - cjgillot:nodefii, r=nikomatsakisYuki Okushi-8/+8
Remove defaultness from ImplItem. This information is not really used anywhere, except HIR pretty-printing. This makes ImplItem and TraitItem more similar.
2022-02-09Rollup merge of #93694 - jsha:font-sizes-spacing, r=GuillaumeGomezYuki Okushi-106/+96
rustdoc: tweak line spacing and paragraph spacing for accessibility The [W3C Web Content Accessibility Guidelines](https://www.w3.org/WAI/WCAG21/Understanding/visual-presentation.html) specify a minimum line spacing of 1.5 and a minimum paragraph spacing of 1.5 times the line spacing. Our current line spacing (implemented by line-height) is 1.4, so it's a small bump to go up to 1.5. Similarly, we have a paragraph spacing of 0.6em. Bump that to 0.75em (which is 1.5 times the 0.5em distance between lines). Also, fix all the font sizes so instead of being round-ish numbers in rem (like 1.1rem, 1.2rem), they are round numbers in pixels: 16px, 18px, 20px, 22px, 24px. Ensure each font size is at least 2 pixels different than the nearest other font size, so distinctions can be clearly seen. Overall the font-sizes are mostly staying the same, being rounded up or down as appropriate. This will make reasoning about consistent layout sizes much easier. Remove a few unused styles. Simplify the display of the mobile-topbar location, by setting its margins to auto rather than trying to size it exactly to the topbar. Part of #59845. Demo: https://rustdoc.crud.net/jsha/font-sizes-spacing/std/string/struct.String.html r? `@GuillaumeGomez`
2022-02-09Auto merge of #93793 - ehuss:update-cargo, r=ehussbors-0/+0
Update cargo 5 commits in 25fcb135d02ea897ce894b67ae021f48107d522b..c082648646cbb2be266df9ecbcdc253058158d68 2022-02-01 01:32:48 +0000 to 2022-02-08 14:55:05 +0000 - Add rustup link (rust-lang/cargo#10371) - Improve startup time of bash completion. (rust-lang/cargo#10365) - Stabilize `-Ztimings` as `--timings` (rust-lang/cargo#10245) - Remove needless borrow (rust-lang/cargo#10360) - Compute non custom build and non transitive deps for doc (rust-lang/cargo#10341)
2022-02-08Update cargoEric Huss-0/+0
2022-02-09Auto merge of #93778 - matthiaskrgr:rollup-yfngdao, r=matthiaskrgrbors-29/+187
Rollup of 7 pull requests Successful merges: - #91950 (Point at type when a `static` `#[global_allocator]` doesn't `impl` `GlobalAlloc`) - #92715 (Do not suggest char literal for zero-length strings) - #92917 (Don't constrain projection predicates with inference vars in GAT substs) - #93206 (Use `NtCreateFile` instead of `NtOpenFile` to open a file) - #93732 (add fut/back compat tests for implied trait bounds) - #93764 (:arrow_up: rust-analyzer) - #93767 (deduplicate `lcnr` in mailmap) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2022-02-08add more tests and make used(linker/compiler) mutually exclusivecynecx-4/+53
2022-02-08Add some known GAT bugs as testsJack Huey-0/+450
2022-02-08Improve opaque type higher-ranked region error message under NLLAaron Hill-11/+62
Currently, any higher-ranked region errors involving opaque types fall back to a generic "higher-ranked subtype error" message when run under NLL. This PR adds better error message handling for this case, giving us the same kinds of error messages that we currently get without NLL: ``` error: implementation of `MyTrait` is not general enough --> $DIR/opaque-hrtb.rs:12:13 | LL | fn foo() -> impl for<'a> MyTrait<&'a str> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ implementation of `MyTrait` is not general enough | = note: `impl MyTrait<&'2 str>` must implement `MyTrait<&'1 str>`, for any lifetime `'1`... = note: ...but it actually implements `MyTrait<&'2 str>`, for some specific lifetime `'2` error: aborting due to previous error ``` To accomplish this, several different refactoring needed to be made: * We now have a dedicated `InstantiateOpaqueType` struct which implements `TypeOp`. This is used to invoke `instantiate_opaque_types` during MIR type checking. * `TypeOp` is refactored to pass around a `MirBorrowckCtxt`, which is needed to report opaque type region errors. * We no longer assume that all `TypeOp`s correspond to canonicalized queries. This allows us to properly handle opaque type instantiation (which does not occur in a query) as a `TypeOp`. A new `ErrorInfo` associated type is used to determine what additional information is used during higher-ranked region error handling. * The body of `try_extract_error_from_fulfill_cx` has been moved out to a new function `try_extract_error_from_region_constraints`. This allows us to re-use the same error reporting code between canonicalized queries (which can extract region constraints directly from a fresh `InferCtxt`) and opaque type handling (which needs to take region constraints from the pre-existing `InferCtxt` that we use throughout MIR borrow checking).
2022-02-08Fix regression from lazy opaque typesOli Scherer-2/+94
2022-02-08Rollup merge of #93764 - lnicola:rust-analyzer-2022-02-08, r=lnicolaMatthias Krüger-17/+21
:arrow_up: rust-analyzer r? ``@ghost``
2022-02-08Rollup merge of #93732 - lcnr:hrlt-backcompa, r=Mark-SimulacrumMatthias Krüger-0/+98
add fut/back compat tests for implied trait bounds the `guard` test was tested to cause a segfault with `-Zchalk`, very nice cc ``@nikomatsakis`` #44491 #25860
2022-02-08Rollup merge of #92917 - jackh726:issue-91762-2, r=nikomatsakisMatthias Krüger-2/+49
Don't constrain projection predicates with inference vars in GAT substs cc #91762 Not a fix, but a mitigation to prevent a backwards-compatible hazard where we normalize using a predicate only because it's the only one available, but shouldn't. This would constrain an inference variable which didn't really want. We already do this when selecting a projection candidate, which isn't always correct. But changing that is a problem for a different day. Also found out that a suggestion for `await`ing a future was using the wrong substs. r? ``@nikomatsakis``
2022-02-08Rollup merge of #92715 - chordtoll:empty-string, r=davidtwcoMatthias Krüger-2/+11
Do not suggest char literal for zero-length strings PR #92507 adds a hint to switch to single quotes when a char is expected and a single-character string literal is provided. The check to ensure the string literal is one character long missed the 0-char case, and would incorrectly offer the hint. This PR adds the missing check, and a test case to confirm the new behavior.
2022-02-08Rollup merge of #91950 - estebank:point-at-type-of-non-allocator, ↵Matthias Krüger-8/+8
r=matthewjasper Point at type when a `static` `#[global_allocator]` doesn't `impl` `GlobalAlloc`
2022-02-08rustdoc: tweak line and ¶ spacing for a11yJacob Hoffman-Andrews-106/+96
The W3C Web Content Accessibility Guidelines specify a minimum line spacing of 1.5 and a minimum paragraph spacing of 1.5 times the line spacing. Our current line spacing (implemented by line-height) is 1.4, so it's a small bump to go up to 1.5. Similarly, we have a paragraph spacing of 0.6em. Bump that to 0.75em (which is 1.5 times the 0.5em distance between lines). Also, fix all the font sizes so instead of being round-ish numbers in rem (like 1.1rem, 1.2rem), they are round numbers in pixels. Ensure each font size is at least 2 pixels different than the nearest other font size, so distinctions can be clearly seen. Overall the font-sizes are mostly staying the same, being rounded up or down as appropriate. Remove a few unused styles. Simplify the display of the mobile-topbar location, by setting its margins to auto rather than trying to size it exactly to the topbar.
2022-02-08Auto merge of #93626 - wesleywiser:fix_hashmap_natvis, r=michaelwoeristerbors-1/+1
Fix HashMap not displaying correctly in VS debugger The natvis to render HashMaps was not working correctly in Visual Studio because the type names for tuples changed from `tuple$<A, B>` to `tuple$<A,B>` (notice the missing space). WinDbg and cdb continued to parse this type name which is why no tests in CI broke. VS however is slightly more strict and this caused the visualizer to break. Since we cannot test the VS debugger in CI, I'm not checking in any test changes. Fixes #92286 r? `@michaelwoerister`
2022-02-08:arrow_up: rust-analyzerLaurențiu Nicola-17/+21
2022-02-08add missing spaceStefan Lankes-1/+1