]> git.lizzy.rs Git - rust.git/log
rust.git
2 years agoFix tests
Chris Denton [Wed, 22 Dec 2021 18:31:36 +0000 (18:31 +0000)]
Fix tests

2 years agoAuto merge of #92095 - vacuus:master, r=jyn514
bors [Tue, 21 Dec 2021 16:04:54 +0000 (16:04 +0000)]
Auto merge of #92095 - vacuus:master, r=jyn514

rustdoc: Remove 'need_backline' field from `DocFragment`

Fixes [#92084](https://github.com/rust-lang/rust/issues/92084)

2 years agoAuto merge of #92149 - fee1-dead:cache-fix, r=oli-obk
bors [Tue, 21 Dec 2021 12:49:10 +0000 (12:49 +0000)]
Auto merge of #92149 - fee1-dead:cache-fix, r=oli-obk

Fix bad caching of `~const Drop` bounds

Fixes #92111.

2 years agoAuto merge of #92152 - matthiaskrgr:rollup-nmskpw6, r=matthiaskrgr
bors [Tue, 21 Dec 2021 09:01:25 +0000 (09:01 +0000)]
Auto merge of #92152 - matthiaskrgr:rollup-nmskpw6, r=matthiaskrgr

Rollup of 7 pull requests

Successful merges:

 - #90345 (Stabilise entry_insert)
 - #91412 (Improve suggestions for importing out-of-scope traits reexported as `_`)
 - #91770 (Suggest adding a `#[cfg(test)]` to to a test module)
 - #91823 (Make `PTR::as_ref` and similar methods `const`.)
 - #92127 (Move duplicates removal when generating results instead of when displaying them)
 - #92129 (JoinHandle docs: add missing 'the')
 - #92131 (Sync rustc_codegen_cranelift)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

2 years agoRollup merge of #92131 - bjorn3:sync_cg_clif-2021-12-20, r=bjorn3
Matthias Krüger [Tue, 21 Dec 2021 07:33:43 +0000 (08:33 +0100)]
Rollup merge of #92131 - bjorn3:sync_cg_clif-2021-12-20, r=bjorn3

Sync rustc_codegen_cranelift

The main highlight this sync is improved support for inline assembly. Thanks `@nbdd0121!` Inline assembly is still disabled by default for builds in the main rust repo though. Cranelift will now also be built from the crates.io releases rather than the git repo. Git repos are incompatible with vendoring.

r? `@ghost`

`@rustbot` label +A-codegen +A-cranelift +T-compiler

2 years agoRollup merge of #92129 - RalfJung:join-handle-docs, r=jyn514
Matthias Krüger [Tue, 21 Dec 2021 07:33:42 +0000 (08:33 +0100)]
Rollup merge of #92129 - RalfJung:join-handle-docs, r=jyn514

JoinHandle docs: add missing 'the'

2 years agoRollup merge of #92127 - GuillaumeGomez:search-results-duplicate-removal, r=jsha
Matthias Krüger [Tue, 21 Dec 2021 07:33:41 +0000 (08:33 +0100)]
Rollup merge of #92127 - GuillaumeGomez:search-results-duplicate-removal, r=jsha

Move duplicates removal when generating results instead of when displaying them

Currently, we store 200 results per tab and then display them. However, it was possible to have duplicates which is why we have this check. However, instead of doing it when displaying the results, it's much better instead to do it even before to simplify the display part a bit.

r? `@jsha`

2 years agoRollup merge of #91823 - woppopo:const_ptr_as_ref, r=lcnr
Matthias Krüger [Tue, 21 Dec 2021 07:33:40 +0000 (08:33 +0100)]
Rollup merge of #91823 - woppopo:const_ptr_as_ref, r=lcnr

Make `PTR::as_ref` and similar methods `const`.

Tracking issue: #91822
Feature gate: `#![feature(const_ptr_as_ref)]`

```rust
// core::ptr
impl<T: ?Sized> *const T {
    pub const unsafe fn as_ref<'a>(self) -> Option<&'a T>;
    pub const unsafe fn as_uninit_ref<'a>(self) -> Option<&'a MaybeUninit<T>>
    where
        T: Sized;
    pub const unsafe fn as_uninit_slice<'a>(self) -> Option<&'a [MaybeUninit<T>]>;
}

impl<T: ?Sized> *mut T {
    pub const unsafe fn as_ref<'a>(self) -> Option<&'a T>;
    pub const unsafe fn as_uninit_ref<'a>(self) -> Option<&'a MaybeUninit<T>>
    where
        T: Sized;
    pub const unsafe fn as_mut<'a>(self) -> Option<&'a mut T>;
    pub const unsafe fn as_uninit_mut<'a>(self) -> Option<&'a mut MaybeUninit<T>>
    where
        T: Sized;
    pub const unsafe fn as_uninit_slice<'a>(self) -> Option<&'a [MaybeUninit<T>]>;
    pub const unsafe fn as_uninit_slice_mut<'a>(self) -> Option<&'a mut [MaybeUninit<T>]>;
}

impl<T: Sized> NonNull<T> {
    pub const unsafe fn as_uninit_ref<'a>(&self) -> &'a MaybeUninit<T>;
    pub const unsafe fn as_uninit_mut<'a>(&mut self) -> &'a mut MaybeUninit<T>;
}

impl<T: ?Sized> NonNull<T> {
    pub const unsafe fn as_ref<'a>(&self) -> &'a T;
    pub const unsafe fn as_mut<'a>(&mut self) -> &'a mut T;
    pub const unsafe fn as_uninit_slice<'a>(&self) -> &'a [MaybeUninit<T>];
    pub const unsafe fn as_uninit_slice_mut<'a>(&self) -> &'a mut [MaybeUninit<T>];
}
```

2 years agoRollup merge of #91770 - TaKO8Ki:suggest-adding-cfg-test, r=joshtriplett
Matthias Krüger [Tue, 21 Dec 2021 07:33:39 +0000 (08:33 +0100)]
Rollup merge of #91770 - TaKO8Ki:suggest-adding-cfg-test, r=joshtriplett

Suggest adding a `#[cfg(test)]` to to a test module

closes #88138

2 years agoRollup merge of #91412 - compiler-errors:issue-86035, r=oli-obk
Matthias Krüger [Tue, 21 Dec 2021 07:33:37 +0000 (08:33 +0100)]
Rollup merge of #91412 - compiler-errors:issue-86035, r=oli-obk

Improve suggestions for importing out-of-scope traits reexported as `_`

1. Fix up the `parent_map` query to prefer visible parents that _don't_ export items with the name `_`.
    * I'm not sure if I modified this query properly. Not sure if we want to check for other idents than `kw::Underscore`.
    * This also has the side-effect of not doing BFS on any modules re-exported as `_`, but I think that's desirable here too (or else we get suggestions for paths like `a::_::b` like in [this doctest example](https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=d9505ea45bb80adf40bb991298f952be)).
2. Bail in `try_print_visible_def_path` if the `def_id` is re-exported as `_`, which will fall back to printing the def-id's real (definition) path.
    * Side-effect of this is that we print paths that are not actually public, but it seems we already sometimes suggest `use`ing paths that are private anyways. See [this doctest example](https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=bad513ed3241f8ff87579eed8046ad10) for demonstration of current behavior.
3. Suggest a glob-import (for example `my_library::prelude::*`) if the trait in question is only pub-exported as `_`, as a fallback.
    ```
    use foo::bar::prelude::*; // trait MyTrait
    ```
    * I think this is good fallback behavior to suggest instead of doing nothing. Thanks to the original issue filer for suggesting this.

I was somewhat opinionated about behaviors in this PR, and I'm totally open to limiting the impact of my changes or only landing parts of this. Happy to receive feedback if there are better ways to the same end.

Fixes #86035

2 years agoRollup merge of #90345 - passcod:entry-insert, r=dtolnay
Matthias Krüger [Tue, 21 Dec 2021 07:33:37 +0000 (08:33 +0100)]
Rollup merge of #90345 - passcod:entry-insert, r=dtolnay

Stabilise entry_insert

This stabilises `HashMap:Entry::insert_entry` etc. Tracking issue #65225. It will need an FCP.

This was implemented in #64656 two years ago.

This PR includes the rename and change discussed in https://github.com/rust-lang/rust/issues/65225#issuecomment-910652430, happy to split if needed.

2 years agoAuto merge of #91903 - tmiasko:bit-set-hash, r=jackh726
bors [Tue, 21 Dec 2021 05:42:10 +0000 (05:42 +0000)]
Auto merge of #91903 - tmiasko:bit-set-hash, r=jackh726

Implement StableHash for BitSet and BitMatrix via Hash

This fixes an issue where bit sets / bit matrices the same word
content but a different domain size would receive the same hash.

2 years agoFix bad caching of `~const Drop` bounds
Deadbeef [Tue, 21 Dec 2021 05:23:59 +0000 (13:23 +0800)]
Fix bad caching of `~const Drop` bounds

2 years agoFixup tests for issue-86035
Michael Goulet [Wed, 1 Dec 2021 02:27:04 +0000 (18:27 -0800)]
Fixup tests for issue-86035

2 years agoSuggest glob-import if we need to import a trait, but it has no visible name
Michael Goulet [Wed, 1 Dec 2021 01:20:38 +0000 (17:20 -0800)]
Suggest glob-import if we need to import a trait, but it has no visible name

2 years agoBail if printing item named `_` in `try_print_visible_def_path`
Michael Goulet [Wed, 1 Dec 2021 01:19:37 +0000 (17:19 -0800)]
Bail if printing item named `_` in `try_print_visible_def_path`

2 years agoPrefer visibility paths where items are not named `_`
Michael Goulet [Wed, 1 Dec 2021 01:18:48 +0000 (17:18 -0800)]
Prefer visibility paths where items are not named `_`

2 years agoTest for issue-86035
Michael Goulet [Wed, 1 Dec 2021 01:53:39 +0000 (17:53 -0800)]
Test for issue-86035

2 years agoAuto merge of #92126 - RalfJung:miri, r=RalfJung
bors [Tue, 21 Dec 2021 02:28:46 +0000 (02:28 +0000)]
Auto merge of #92126 - RalfJung:miri, r=RalfJung

update Miri

Fixes https://github.com/rust-lang/rust/issues/92101
r? `@ghost`

2 years agoAuto merge of #92144 - rust-lang:tmandry-patch-1, r=Mark-Simulacrum
bors [Mon, 20 Dec 2021 23:19:14 +0000 (23:19 +0000)]
Auto merge of #92144 - rust-lang:tmandry-patch-1, r=Mark-Simulacrum

Add tmandry to .mailmap

2 years agoAdd tmandry to .mailmap
Tyler Mandry [Mon, 20 Dec 2021 23:16:44 +0000 (15:16 -0800)]
Add tmandry to .mailmap

2 years agoBump insert_entry stabilization to Rust 1.59
David Tolnay [Mon, 20 Dec 2021 21:14:06 +0000 (13:14 -0800)]
Bump insert_entry stabilization to Rust 1.59

2 years agoMerge commit '97e504549371d7640cf011d266e3c17394fdddac' into sync_cg_clif-2021-12-20
bjorn3 [Mon, 20 Dec 2021 17:56:35 +0000 (18:56 +0100)]
Merge commit '97e504549371d7640cf011d266e3c17394fdddac' into sync_cg_clif-2021-12-20

2 years agoFix taking address of truly unsized type field of unsized adt
bjorn3 [Mon, 20 Dec 2021 17:49:43 +0000 (18:49 +0100)]
Fix taking address of truly unsized type field of unsized adt

2 years agoJoinHandle docs: add missing 'the'
Ralf Jung [Mon, 20 Dec 2021 17:30:29 +0000 (18:30 +0100)]
JoinHandle docs: add missing 'the'

2 years agoRustup to rustc 1.59.0-nightly (e95e084a1 2021-12-19)
bjorn3 [Mon, 20 Dec 2021 17:21:55 +0000 (18:21 +0100)]
Rustup to rustc 1.59.0-nightly (e95e084a1 2021-12-19)

2 years agoSync from rust 84f962a89bac3948ed116f1ad04c2f4793fb69ea
bjorn3 [Mon, 20 Dec 2021 17:12:18 +0000 (18:12 +0100)]
Sync from rust 84f962a89bac3948ed116f1ad04c2f4793fb69ea

2 years agoMove duplicates removal when generating results instead of when displaying them
Guillaume Gomez [Mon, 20 Dec 2021 17:01:04 +0000 (18:01 +0100)]
Move duplicates removal when generating results instead of when displaying them

2 years agoupdate Miri
Ralf Jung [Mon, 20 Dec 2021 16:02:29 +0000 (17:02 +0100)]
update Miri

2 years agoAuto merge of #92108 - r00ster91:patch-6, r=jyn514
bors [Mon, 20 Dec 2021 14:53:48 +0000 (14:53 +0000)]
Auto merge of #92108 - r00ster91:patch-6, r=jyn514

paniced -> panicked

2 years agoAuto merge of #91924 - Aaron1011:serialize-adt-def, r=michaelwoerister
bors [Mon, 20 Dec 2021 10:35:48 +0000 (10:35 +0000)]
Auto merge of #91924 - Aaron1011:serialize-adt-def, r=michaelwoerister

Fully serialize AdtDef

This avoids needing to invoke the `adt_def` query during
the decoding of another query's result.

Split out from https://github.com/rust-lang/rust/pull/91919
See https://github.com/rust-lang/rust/issues/91696#issuecomment-993043710

2 years agoAuto merge of #92041 - Aaron1011:remove-speculative-evaluation, r=jackh726
bors [Mon, 20 Dec 2021 07:30:16 +0000 (07:30 +0000)]
Auto merge of #92041 - Aaron1011:remove-speculative-evaluation, r=jackh726

Remove 'speculative evaluation' of predicates

Performing 'speculative evaluation' introduces caching bugs that
cannot be fixed without invasive changes to projection.

Hopefully, we can win back most of the performance lost by
re-adding 'cache completion'

Fixes #90662

2 years agoAuto merge of #91900 - pitaj:fix-91714, r=jyn514
bors [Mon, 20 Dec 2021 04:21:12 +0000 (04:21 +0000)]
Auto merge of #91900 - pitaj:fix-91714, r=jyn514

rustdoc: make `--passes` and `--no-defaults` have no effect

Fixes #91714

One potential issue is that currently there is no stable way to achieve `--document-hidden-items`. This affects test `issue-15347`.

I also had to modify the tests `issue-42875` and `no-compiler-export`. Regardless of combinations of `--document-hidden-items` and `--document-private-items`, I was unable to get these to pass without the modifications. I left behind a comment noting the change.

2 years agoAuto merge of #91844 - nnethercote:rm-ObligationCauseData-2, r=Mark-Simulacrum
bors [Mon, 20 Dec 2021 00:40:58 +0000 (00:40 +0000)]
Auto merge of #91844 - nnethercote:rm-ObligationCauseData-2, r=Mark-Simulacrum

Eliminate `ObligationCauseData`

This makes `Obligation` two words bigger, but avoids allocating a lot of the time.

I previously tried this in #73983 and it didn't help much, but local timings look more promising now.

r? `@ghost`

2 years agoRemove 'need_backline' field of `DocFragment`
Roc Yu [Mon, 20 Dec 2021 00:38:59 +0000 (19:38 -0500)]
Remove 'need_backline' field of `DocFragment`

2 years agoOmit check of a successive line in loop
vacuus [Sun, 19 Dec 2021 02:54:59 +0000 (21:54 -0500)]
Omit check of a successive line in loop

I think that s == "" is the only edge case (as it makes iter.next() return None the first time). The early return is necessary so that the last character of 'out' isn't popped if s == "" && !frag.need_backline

2 years agoEliminate `ObligationCauseData`.
Nicholas Nethercote [Thu, 11 Nov 2021 01:01:12 +0000 (12:01 +1100)]
Eliminate `ObligationCauseData`.

This makes `Obligation` two words bigger, but avoids allocating a lot of
the time.

I previously tried this in #73983 and it didn't help much, but local
timings look more promising now.

2 years agopaniced -> panicked
r00ster [Sun, 19 Dec 2021 20:08:19 +0000 (21:08 +0100)]
paniced -> panicked

2 years agoAuto merge of #92106 - matthiaskrgr:rollup-zw6t1mu, r=matthiaskrgr
bors [Sun, 19 Dec 2021 17:14:12 +0000 (17:14 +0000)]
Auto merge of #92106 - matthiaskrgr:rollup-zw6t1mu, r=matthiaskrgr

Rollup of 4 pull requests

Successful merges:

 - #91791 (Fix an ICE when lowering a float with missing exponent magnitude)
 - #91878 (Remove `in_band_lifetimes` from `rustc_infer`)
 - #91895 (Remove `in_band_lifetimes` for `rustc_monomorphize`)
 - #92029 (Explicitly set no ELF flags for .rustc section)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

2 years agoRollup merge of #92029 - nikic:section-flags-fix, r=davidtwco
Matthias Krüger [Sun, 19 Dec 2021 16:38:35 +0000 (17:38 +0100)]
Rollup merge of #92029 - nikic:section-flags-fix, r=davidtwco

Explicitly set no ELF flags for .rustc section

For a data section, the object crate will set the SHF_ALLOC by default, which is exactly what we don't want. Explicitly set sh_flags to zero to avoid this.

I checked with `objdump -h` that this produces the right flags for ELF.

Fixes #92013.

2 years agoRollup merge of #91895 - pitaj:91867-monomorphize, r=Aaron1011
Matthias Krüger [Sun, 19 Dec 2021 16:38:34 +0000 (17:38 +0100)]
Rollup merge of #91895 - pitaj:91867-monomorphize, r=Aaron1011

Remove `in_band_lifetimes` for `rustc_monomorphize`

#91867

2 years agoRollup merge of #91878 - LegionMammal978:less-inband-infer, r=Aaron1011
Matthias Krüger [Sun, 19 Dec 2021 16:38:33 +0000 (17:38 +0100)]
Rollup merge of #91878 - LegionMammal978:less-inband-infer, r=Aaron1011

Remove `in_band_lifetimes` from `rustc_infer`

See #91867 for more information.

This crate actually had a typo `'ctx` in one of its functions:
```diff
-pub fn same_type_modulo_infer(a: Ty<'tcx>, b: Ty<'ctx>) -> bool {
+pub fn same_type_modulo_infer<'tcx>(a: Ty<'tcx>, b: Ty<'tcx>) -> bool {
```
Also, I wasn't entirely sure about the lifetimes in `suggest_new_region_bound`:
```diff
 pub fn suggest_new_region_bound(
-    tcx: TyCtxt<'tcx>,
+    tcx: TyCtxt<'_>,
     err: &mut DiagnosticBuilder<'_>,
     fn_returns: Vec<&rustc_hir::Ty<'_>>,
```
Should all of those lifetimes really be distinct?

2 years agoRollup merge of #91791 - terrarier2111:fix-float-ice, r=nagisa
Matthias Krüger [Sun, 19 Dec 2021 16:38:33 +0000 (17:38 +0100)]
Rollup merge of #91791 - terrarier2111:fix-float-ice, r=nagisa

Fix an ICE when lowering a float with missing exponent magnitude

This fixes: https://github.com/rust-lang/rust/issues/91434

2 years agoAuto merge of #92099 - matthiaskrgr:rollup-4gwv67m, r=matthiaskrgr
bors [Sun, 19 Dec 2021 12:36:56 +0000 (12:36 +0000)]
Auto merge of #92099 - matthiaskrgr:rollup-4gwv67m, r=matthiaskrgr

Rollup of 7 pull requests

Successful merges:

 - #91141 (Revert "Temporarily rename int_roundings functions to avoid conflicts")
 - #91984 (Remove `in_band_lifetimes` from `rustc_middle`)
 - #92028 (Sync portable-simd to fix libcore build for AVX-512 enabled targets)
 - #92042 (Enable `#[thread_local]` for all windows-msvc targets)
 - #92071 (Update example code for Vec::splice to change the length)
 - #92077 (rustdoc: Remove unused `collapsed` field)
 - #92081 (rustdoc: Remove unnecessary `need_backline` function)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

2 years agoFix an ICE when lowering a float with missing exponent magnitude
threadexception [Sat, 11 Dec 2021 14:42:25 +0000 (15:42 +0100)]
Fix an ICE when lowering a float with missing exponent magnitude

Co-authored-by: Simonas Kazlauskas <github@kazlauskas.me>
2 years agoRollup merge of #92081 - jyn514:need-backline, r=GuillaumeGomez
Matthias Krüger [Sun, 19 Dec 2021 09:45:56 +0000 (10:45 +0100)]
Rollup merge of #92081 - jyn514:need-backline, r=GuillaumeGomez

rustdoc: Remove unnecessary `need_backline` function

r? `@GuillaumeGomez`

2 years agoRollup merge of #92077 - jyn514:remove-collapsed, r=GuillaumeGomez
Matthias Krüger [Sun, 19 Dec 2021 09:45:55 +0000 (10:45 +0100)]
Rollup merge of #92077 - jyn514:remove-collapsed, r=GuillaumeGomez

rustdoc: Remove unused `collapsed` field

`render/context` always runs after `run_global_context`, so it was always set to `true`.

This is a holdover from when rustdoc allowed configuring passes, but the `collapse-docs` pass was
removed ages ago, and the ability to configure passes is about to be removed.

Found while reviewing https://github.com/rust-lang/rust/pull/91305.

2 years agoRollup merge of #92071 - ajtribick:patch-1, r=the8472
Matthias Krüger [Sun, 19 Dec 2021 09:45:54 +0000 (10:45 +0100)]
Rollup merge of #92071 - ajtribick:patch-1, r=the8472

Update example code for Vec::splice to change the length

The current example for `Vec::splice` illustrates the replacement of a section of length 2 with a new section of length 2. This isn't a particularly interesting case for splice, and makes it look a bit like a shorthand for the kind of manipulations that could be done with a mutable slice.

In order to provide a stronger example, this updates the example to use different lengths for the source and destination regions, and uses a slice from the middle of the vector to illustrate that this does not necessarily have to be at the beginning or the end.

Resolves #92067

2 years agoRollup merge of #92042 - ChrisDenton:msvc-static-tls, r=nagisa
Matthias Krüger [Sun, 19 Dec 2021 09:45:53 +0000 (10:45 +0100)]
Rollup merge of #92042 - ChrisDenton:msvc-static-tls, r=nagisa

Enable `#[thread_local]` for all windows-msvc targets

As it stands, `#[thread_local]` is enabled haphazardly for msvc. It seems all 64-bit targets have it enabled, but not 32-bit targets unless they're also UWP targets (perhaps because UWP was added more recently?). So this PR simply enables it for 32-bit targets as well. I can't think of a reason not to and I've confirmed by running tests locally which pass.

See also #91659

2 years agoRollup merge of #92028 - petrochenkov:psimd, r=Mark-Simulacrum
Matthias Krüger [Sun, 19 Dec 2021 09:45:52 +0000 (10:45 +0100)]
Rollup merge of #92028 - petrochenkov:psimd, r=Mark-Simulacrum

Sync portable-simd to fix libcore build for AVX-512 enabled targets

Fixes https://github.com/rust-lang/rust/pull/91484#issuecomment-989933534
cc ``@workingjubilee``

2 years agoRollup merge of #91984 - Aaron1011:rustc-middle-lifetime, r=oli-obk
Matthias Krüger [Sun, 19 Dec 2021 09:45:51 +0000 (10:45 +0100)]
Rollup merge of #91984 - Aaron1011:rustc-middle-lifetime, r=oli-obk

Remove `in_band_lifetimes` from `rustc_middle`

See #91867

This was mostly straightforward. In several places, I take advantage
of the fact that lifetimes are non-hygenic: a macro declares the
'tcx' lifetime, which is then used in types passed in as macro
arguments.

2 years agoRollup merge of #91141 - jhpratt:int_roundings, r=joshtriplett
Matthias Krüger [Sun, 19 Dec 2021 09:45:50 +0000 (10:45 +0100)]
Rollup merge of #91141 - jhpratt:int_roundings, r=joshtriplett

Revert "Temporarily rename int_roundings functions to avoid conflicts"

This reverts commit 3ece63b64e192146fcdd1724e25856a93d7626aa.

This should be okay because #90329 has been merged.

r? `@joshtriplett`

2 years agoAuto merge of #91957 - nnethercote:rm-SymbolStr, r=oli-obk
bors [Sun, 19 Dec 2021 09:31:37 +0000 (09:31 +0000)]
Auto merge of #91957 - nnethercote:rm-SymbolStr, r=oli-obk

Remove `SymbolStr`

This was originally proposed in https://github.com/rust-lang/rust/pull/74554#discussion_r466203544. As well as removing the icky `SymbolStr` type, it allows the removal of a lot of `&` and `*` occurrences.

Best reviewed one commit at a time.

r? `@oli-obk`

2 years agoAuto merge of #91957 - nnethercote:rm-SymbolStr, r=oli-obk
bors [Sun, 19 Dec 2021 09:31:37 +0000 (09:31 +0000)]
Auto merge of #91957 - nnethercote:rm-SymbolStr, r=oli-obk

Remove `SymbolStr`

This was originally proposed in https://github.com/rust-lang/rust/pull/74554#discussion_r466203544. As well as removing the icky `SymbolStr` type, it allows the removal of a lot of `&` and `*` occurrences.

Best reviewed one commit at a time.

r? `@oli-obk`

2 years agoAuto merge of #91871 - camelid:urlpartsbuilder, r=GuillaumeGomez
bors [Sun, 19 Dec 2021 06:26:07 +0000 (06:26 +0000)]
Auto merge of #91871 - camelid:urlpartsbuilder, r=GuillaumeGomez

rustdoc: Add `UrlPartsBuilder`

This is a type for efficiently and easily constructing the part of a URL
after the domain: `nightly/core/str/struct.Bytes.html`.

It allows simplifying some code and avoiding some allocations in the
`href_*` functions.

It will also allow making `Cache.paths` et al. use `Symbol` without
having to allocate `String`s in the `href_*` functions. `String`s would
be necessary otherwise because `Symbol::as_str()` returns `SymbolStr`,
whose `Deref<Target = str>` impl requires the `str` to not outlive it.
This is the primary motivation for the addition of `UrlPartsBuilder`.

2 years agoAuto merge of #89831 - Aaron1011:project-caching-speedup, r=jackh726
bors [Sun, 19 Dec 2021 03:33:19 +0000 (03:33 +0000)]
Auto merge of #89831 - Aaron1011:project-caching-speedup, r=jackh726

Re-introduce concept of projection cache 'completion'

Instead of clearing out the cache entirely, we store
the intermediate evaluation result into the cache entry.
This accomplishes several things:

* We avoid the performance hit associated with re-evaluating
  the sub-obligations
* We avoid causing issues with incremental compilation, since
  the final evaluation result is always the same
* We avoid affecting other uses of the same `InferCtxt` which
  might care about 'side effects' from processing the sub-obligations
  (e,g. region constraints). Only code that is specifically aware
   of the new 'complete' code is affected

2 years agoAuto merge of #92090 - matthiaskrgr:rollup-pbyqddi, r=matthiaskrgr
bors [Sun, 19 Dec 2021 00:24:56 +0000 (00:24 +0000)]
Auto merge of #92090 - matthiaskrgr:rollup-pbyqddi, r=matthiaskrgr

Rollup of 7 pull requests

Successful merges:

 - #91834 (Update browser-ui-test version and improve rustdoc-gui tests readability)
 - #91894 (Remove `in_band_lifetimes` from `rustc_incremental`)
 - #91932 (Add user seed to `-Z randomize-layout`)
 - #91956 (fix(rustc_lint): better detect when parens are necessary)
 - #92020 (Remove P: Unpin bound on impl Stream for Pin)
 - #92063 (docs: fix typo)
 - #92082 (rustdoc: Write doc-comments directly instead of using FromIterator)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

2 years agoRe-introduce concept of projection cache 'completion'
Aaron Hill [Sat, 9 Oct 2021 16:29:39 +0000 (11:29 -0500)]
Re-introduce concept of projection cache 'completion'

Instead of clearing out the cache entirely, we store
the intermediate evaluation result into the cache entry.
This accomplishes several things:

* We avoid the performance hit associated with re-evaluating
  the sub-obligations
* We avoid causing issues with incremental compilation, since
  the final evaluation result is always the same
* We avoid affecting other uses of the same `InferCtxt` which
  might care about 'side effects' from processing the sub-obligations
  (e,g. region constraints). Only code that is specifically aware
   of the new 'complete' code is affected

2 years agoRollup merge of #92082 - jyn514:remove-from-iterator, r=jyn514
Matthias Krüger [Sat, 18 Dec 2021 23:38:44 +0000 (00:38 +0100)]
Rollup merge of #92082 - jyn514:remove-from-iterator, r=jyn514

rustdoc: Write doc-comments directly instead of using FromIterator

The FromIterator impl made the code much harder to understand. The types
don't make sense until you realize there's a custom FromIterator impl.

This is the first commit from https://github.com/rust-lang/rust/pull/91305; since ``@camelid`` wrote it originally I don't feel bad unilaterally approving it.

r? ``@ghost``
``@bors`` r+

Note that this will conflict with https://github.com/rust-lang/rust/pull/92078.

2 years agoRollup merge of #92063 - OverOrion:patch-1, r=jyn514
Matthias Krüger [Sat, 18 Dec 2021 23:38:43 +0000 (00:38 +0100)]
Rollup merge of #92063 - OverOrion:patch-1, r=jyn514

docs: fix typo

Add missing `'s` to ` Let check it out.`

2 years agoRollup merge of #92020 - Folyd:stream-unpin, r=m-ou-se
Matthias Krüger [Sat, 18 Dec 2021 23:38:42 +0000 (00:38 +0100)]
Rollup merge of #92020 - Folyd:stream-unpin, r=m-ou-se

Remove P: Unpin bound on impl Stream for Pin

Similar to https://github.com/rust-lang/rust/pull/81363.

2 years agoRollup merge of #91956 - notriddle:notriddle/unused-parens-range, r=nagisa
Matthias Krüger [Sat, 18 Dec 2021 23:38:41 +0000 (00:38 +0100)]
Rollup merge of #91956 - notriddle:notriddle/unused-parens-range, r=nagisa

fix(rustc_lint): better detect when parens are necessary

Fixes #90807

2 years agoRollup merge of #91932 - Kixiron:randomize-seed, r=nagisa
Matthias Krüger [Sat, 18 Dec 2021 23:38:41 +0000 (00:38 +0100)]
Rollup merge of #91932 - Kixiron:randomize-seed, r=nagisa

Add user seed to `-Z randomize-layout`

Allows users of -`Z randomize-layout` to provide `-Z layout-seed=<seed>` in order to further randomizing type layout randomization. Extension of [compiler-team/#457](https://github.com/rust-lang/compiler-team/issues/457), allows users to change struct layouts without changing code and hoping that item path hashes change, aiding in detecting layout errors

2 years agoRollup merge of #91894 - pitaj:91867-incremental, r=Aaron1011
Matthias Krüger [Sat, 18 Dec 2021 23:38:40 +0000 (00:38 +0100)]
Rollup merge of #91894 - pitaj:91867-incremental, r=Aaron1011

Remove `in_band_lifetimes` from `rustc_incremental`

#91867

2 years agoRollup merge of #91834 - GuillaumeGomez:improve-gui-test-readability, r=jsha
Matthias Krüger [Sat, 18 Dec 2021 23:38:39 +0000 (00:38 +0100)]
Rollup merge of #91834 - GuillaumeGomez:improve-gui-test-readability, r=jsha

Update browser-ui-test version and improve rustdoc-gui tests readability

Since the `0.5.1`, we can use trailing commas. I also used the opportunity to clean up the existing tests.

r? `@notriddle`

2 years agoAuto merge of #91837 - Kobzol:stable-hash-map-avoid-sort, r=the8472
bors [Sat, 18 Dec 2021 21:23:37 +0000 (21:23 +0000)]
Auto merge of #91837 - Kobzol:stable-hash-map-avoid-sort, r=the8472

Avoid sorting in hash map stable hashing

Suggested by `@the8472` [here](https://github.com/rust-lang/rust/pull/89404#issuecomment-991813333). I hope that I understood it right, I replaced the sort with modular multiplication, which should be commutative.

Can I ask for a perf. run? However, locally it didn't help at all. Creating the `StableHasher` all over again is probably slowing it down quite a lot. And using `FxHasher` is not straightforward, because the keys and values only implement `HashStable` (and probably they shouldn't be just hashed via `Hash` anyway for it to actually be stable).

Maybe the `StableHash` interface could be changed somehow to better suppor these scenarios where the hasher is short-lived. Or the `StableHasher` implementation could have variants with e.g. a shorter buffer for these scenarios.

2 years agoAdd cron job to test against latest cranelift version every day
bjorn3 [Sat, 18 Dec 2021 17:55:33 +0000 (18:55 +0100)]
Add cron job to test against latest cranelift version every day

Fixes #1212

2 years agoAuto merge of #92065 - matthiaskrgr:rollup-qmpcsuj, r=matthiaskrgr
bors [Sat, 18 Dec 2021 18:08:51 +0000 (18:08 +0000)]
Auto merge of #92065 - matthiaskrgr:rollup-qmpcsuj, r=matthiaskrgr

Rollup of 7 pull requests

Successful merges:

 - #91566 (Apply path remapping to DW_AT_GNU_dwo_name when producing split DWARF)
 - #91926 (Remove `in_band_lifetimes` from `rustc_metadata`)
 - #91931 (Remove `in_band_lifetimes` from `rustc_codegen_llvm`)
 - #92024 (rustc_codegen_llvm: Give each codegen unit a unique DWARF name on all platforms, not just Apple ones.)
 - #92037 (Use a const ParamEnv when in default_method_body_is_const)
 - #92047 (Set `RUST_BACKTRACE=0` when running location-detail tests)
 - #92050 (Add a space and 2 grave accents )

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

2 years agoExplicitly set no ELF flags for .rustc section
Nikita Popov [Fri, 17 Dec 2021 10:26:39 +0000 (11:26 +0100)]
Explicitly set no ELF flags for .rustc section

For a data section, the object crate will set the SHF_ALLOC by
default, which is exactly what we don't want. Explicitly set
sh_flags to zero to avoid this.

2 years agoWrite code directly instead of using FromIterator
Noah Lev [Wed, 24 Nov 2021 22:07:37 +0000 (14:07 -0800)]
Write code directly instead of using FromIterator

The FromIterator impl made the code much harder to understand. The types
don't make sense until you realize there's a custom FromIterator impl.

2 years agoRemove unnecessary `need_backline` function
Joshua Nelson [Sat, 18 Dec 2021 17:32:40 +0000 (11:32 -0600)]
Remove unnecessary `need_backline` function

2 years agoRemove `collapsed` field
Joshua Nelson [Sat, 18 Dec 2021 16:44:58 +0000 (10:44 -0600)]
Remove `collapsed` field

`render/context` always runs after `run_global_context`, so it was always set to `true`.

This is a holdover from when rustdoc allowed configuring passes, but the `collapse-docs` pass was
removed ages ago, and the ability to configure passes is about to be removed.

2 years agoUpdate example code for Vec::splice to change the length
ajtribick [Sat, 18 Dec 2021 14:59:33 +0000 (15:59 +0100)]
Update example code for Vec::splice to change the length

2 years agoAuto merge of #92064 - matthiaskrgr:rollup-tgj2pai, r=matthiaskrgr
bors [Sat, 18 Dec 2021 15:01:32 +0000 (15:01 +0000)]
Auto merge of #92064 - matthiaskrgr:rollup-tgj2pai, r=matthiaskrgr

Rollup of 7 pull requests

Successful merges:

 - #91858 (pass -Wl,-z,origin to set DF_ORIGIN when using rpath)
 - #91923 (Remove `in_band_lifetimes` from `rustc_query_impl`)
 - #91925 (Remove `in_band_lifetimes` from `rustc_privacy`)
 - #91977 (Clean up search code and unify function returned values)
 - #92018 (Fix typo in "new region bound" suggestion)
 - #92022 (Eliminate duplicate codes of expected_found_bool)
 - #92032 (hir: Do not introduce dummy type names for `extern` blocks in def paths)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

2 years agoRemove triple method from FunctionCx
bjorn3 [Sat, 18 Dec 2021 14:46:30 +0000 (15:46 +0100)]
Remove triple method from FunctionCx

Instead use the default_call_conv field on TargetFrontendConfig to get
the default CallConv.

2 years agoSlightly reduce the amount of fx.module references
bjorn3 [Sat, 18 Dec 2021 14:33:31 +0000 (15:33 +0100)]
Slightly reduce the amount of fx.module references

2 years agoRollup merge of #92050 - r00ster91:patch-5, r=camelid
Matthias Krüger [Sat, 18 Dec 2021 13:49:45 +0000 (14:49 +0100)]
Rollup merge of #92050 - r00ster91:patch-5, r=camelid

Add a space and 2 grave accents

I only noticed this because I have this implementation copy pasted in some places in my code and I really can't wait for this to be stabilized...

2 years agoRollup merge of #92047 - Aaron1011:location-detail-backtrace, r=Mark-Simulacrum
Matthias Krüger [Sat, 18 Dec 2021 13:49:44 +0000 (14:49 +0100)]
Rollup merge of #92047 - Aaron1011:location-detail-backtrace, r=Mark-Simulacrum

Set `RUST_BACKTRACE=0` when running location-detail tests

This ensures that the output does not depend on environment variables
set in the shell.

2 years agoRollup merge of #92037 - fee1-dead:fix_env_dmbic, r=oli-obk
Matthias Krüger [Sat, 18 Dec 2021 13:49:42 +0000 (14:49 +0100)]
Rollup merge of #92037 - fee1-dead:fix_env_dmbic, r=oli-obk

Use a const ParamEnv when in default_method_body_is_const

r? `@oli-obk`

This PR fixes the param_env function to return `constness: Const` correctly for trait methods marked with `#[default_method_body_is_const]`. The snippet below is erroneously accepted by the compiler and has been fixed by this change. ([Playground](https://play.rust-lang.org/?version=nightly&mode=debug&edition=2021&gist=12dc6681b2eeee5f604203d96259eeb4))

```rust
#![feature(const_fn_trait_bound)]
#![feature(const_trait_impl)]

trait Tr {}
impl Tr for () {}

const fn foo<T>() where T: ~const Tr {}

pub trait Foo {
    #[default_method_body_is_const]
    fn foo() {
        foo::<()>();
    }
}
```

2 years agoRollup merge of #92024 - pcwalton:per-codegen-unit-names, r=davidtwco
Matthias Krüger [Sat, 18 Dec 2021 13:49:41 +0000 (14:49 +0100)]
Rollup merge of #92024 - pcwalton:per-codegen-unit-names, r=davidtwco

rustc_codegen_llvm: Give each codegen unit a unique DWARF name on all platforms, not just Apple ones.

To avoid breaking split DWARF, we need to ensure that each codegen unit has a
unique `DW_AT_name`. This is because there's a remote chance that different
codegen units for the same module will have entirely identical DWARF entries
for the purpose of the DWO ID, which would violate Appendix F ("Split Dwarf
Object Files") of the DWARF 5 specification. LLVM uses the algorithm specified
in section 7.32 "Type Signature Computation" to compute the DWO ID, which does
not include any fields that would distinguish compilation units. So we must
embed the codegen unit name into the `DW_AT_name`.

Closes #88521.

2 years agoRollup merge of #91931 - LegionMammal978:less-inband-codegen_llvm, r=davidtwco
Matthias Krüger [Sat, 18 Dec 2021 13:49:40 +0000 (14:49 +0100)]
Rollup merge of #91931 - LegionMammal978:less-inband-codegen_llvm, r=davidtwco

Remove `in_band_lifetimes` from `rustc_codegen_llvm`

See #91867 for more information.

This one took a while. This crate has dozens of functions not associated with any type, and most of them were using in-band lifetimes for `'ll` and `'tcx`.

2 years agoRollup merge of #91926 - SylvanB:remove_in_band_lifetimes_from_rustc_metadata, r...
Matthias Krüger [Sat, 18 Dec 2021 13:49:39 +0000 (14:49 +0100)]
Rollup merge of #91926 - SylvanB:remove_in_band_lifetimes_from_rustc_metadata, r=nagisa

Remove `in_band_lifetimes` from `rustc_metadata`

Another for #91867

2 years agoRollup merge of #91566 - cbeuw:remap-dwo-name, r=davidtwco
Matthias Krüger [Sat, 18 Dec 2021 13:49:38 +0000 (14:49 +0100)]
Rollup merge of #91566 - cbeuw:remap-dwo-name, r=davidtwco

Apply path remapping to DW_AT_GNU_dwo_name when producing split DWARF

`--remap-path-prefix` doesn't apply to paths to `.o` (in case of packed) or `.dwo` (in case of unpacked) files in `DW_AT_GNU_dwo_name`. GCC also has this bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91888

2 years agoRollup merge of #92032 - petrochenkov:extblockpath, r=oli-obk
Matthias Krüger [Sat, 18 Dec 2021 10:28:07 +0000 (11:28 +0100)]
Rollup merge of #92032 - petrochenkov:extblockpath, r=oli-obk

hir: Do not introduce dummy type names for `extern` blocks in def paths

Use a separate nameless `DefPathData` variant instead.

Extracted from https://github.com/rust-lang/rust/pull/91795.

2 years agoRollup merge of #92022 - woodenarrow:br_expected_bool, r=estebank
Matthias Krüger [Sat, 18 Dec 2021 10:28:06 +0000 (11:28 +0100)]
Rollup merge of #92022 - woodenarrow:br_expected_bool, r=estebank

Eliminate duplicate codes of expected_found_bool

The function expected_found_bool is the same as ExpectedFound::new. So use ExpectedFound::new to replace expected_found_bool to eliminate duplicate codes.

![image](https://user-images.githubusercontent.com/95843988/146486722-c910eccd-a36c-4dc5-8b36-214aab058e38.png)

2 years agoRollup merge of #92018 - estebank:missing-ticks, r=oli-obk
Matthias Krüger [Sat, 18 Dec 2021 10:28:05 +0000 (11:28 +0100)]
Rollup merge of #92018 - estebank:missing-ticks, r=oli-obk

Fix typo in "new region bound" suggestion

The lifetime name shoud always appear in text surrounded by `.

2 years agoRollup merge of #91977 - GuillaumeGomez:unify-search-code, r=jsha
Matthias Krüger [Sat, 18 Dec 2021 10:28:05 +0000 (11:28 +0100)]
Rollup merge of #91977 - GuillaumeGomez:unify-search-code, r=jsha

Clean up search code and unify function returned values

This PR is a cleanup: there is no changes in the search results or in the UI.

Depending if it was "literal search" or not, it was either returning booleans or integers. It's pretty bad so instead it all returns integers.

Another thing I did was to move the add and checks into a `addIntoResults` function to simplify things.

Last thing: I removed a loop in the `sortResults` function and moved its code directly into the first loop.

All these changes are done to make #90630 much smaller.

r? `@jsha`

2 years agoRollup merge of #91925 - LegionMammal978:less-inband-privacy, r=nagisa
Matthias Krüger [Sat, 18 Dec 2021 10:28:03 +0000 (11:28 +0100)]
Rollup merge of #91925 - LegionMammal978:less-inband-privacy, r=nagisa

Remove `in_band_lifetimes` from `rustc_privacy`

See #91867 for more information.

2 years agoRollup merge of #91923 - LegionMammal978:less-inband-query_impl, r=michaelwoerister
Matthias Krüger [Sat, 18 Dec 2021 10:28:02 +0000 (11:28 +0100)]
Rollup merge of #91923 - LegionMammal978:less-inband-query_impl, r=michaelwoerister

Remove `in_band_lifetimes` from `rustc_query_impl`

See #91867 for more information.

2 years agoRollup merge of #91858 - semarie:runpath, r=petrochenkov
Matthias Krüger [Sat, 18 Dec 2021 10:28:01 +0000 (11:28 +0100)]
Rollup merge of #91858 - semarie:runpath, r=petrochenkov

pass -Wl,-z,origin to set DF_ORIGIN when using rpath

DF_ORIGIN flag signifies that the object being loaded may make reference to the $ORIGIN substitution string.

Some implementations are just ignoring [DF_ORIGIN](http://www.sco.com/developers/gabi/latest/ch5.dynamic.html#df_flags) and do [substitution](http://www.sco.com/developers/gabi/latest/ch5.dynamic.html#substitution) for $ORIGIN if present (whatever DF_ORIGIN presence or not) like glibc. But some others mandate the present of DF_ORIGIN for the substitution (like OpenBSD).

Set the flag inconditionally if rpath is wanted.

One possible fallout is if the linker rejects `-z origin` option.

2 years agodocs: fix typo
Szilárd Parrag [Sat, 18 Dec 2021 10:21:58 +0000 (11:21 +0100)]
docs: fix typo

Add missing `'s` to ` Let check it out.`

2 years agoAuto merge of #92062 - matthiaskrgr:rollup-en3p4sb, r=matthiaskrgr
bors [Sat, 18 Dec 2021 10:20:24 +0000 (10:20 +0000)]
Auto merge of #92062 - matthiaskrgr:rollup-en3p4sb, r=matthiaskrgr

Rollup of 7 pull requests

Successful merges:

 - #91439 (Mark defaulted `PartialEq`/`PartialOrd` methods as const)
 - #91516 (Improve suggestion to change struct field to &mut)
 - #91896 (Remove `in_band_lifetimes` for `rustc_passes`)
 - #91909 (:arrow_up: rust-analyzer)
 - #91922 (Remove `in_band_lifetimes` from `rustc_mir_dataflow`)
 - #92025 (Revert "socket ancillary data implementation for dragonflybsd.")
 - #92030 (Update stdlib to the 2021 edition)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

2 years agoRollup merge of #92030 - rukai:stdlib2021, r=m-ou-se
Matthias Krüger [Sat, 18 Dec 2021 09:26:40 +0000 (10:26 +0100)]
Rollup merge of #92030 - rukai:stdlib2021, r=m-ou-se

Update stdlib to the 2021 edition

progress towards https://github.com/rust-lang/rust/issues/88638

I couldnt find a way to run the 2018 style panic tests against 2018 so I just deleted them, maybe theres a way to do it that I missed though?

2 years agoRollup merge of #92025 - devnexen:revert-91553-anc_data_dfbsd, r=kennytm
Matthias Krüger [Sat, 18 Dec 2021 09:26:39 +0000 (10:26 +0100)]
Rollup merge of #92025 - devnexen:revert-91553-anc_data_dfbsd, r=kennytm

Revert "socket ancillary data implementation for dragonflybsd."

Reverts rust-lang/rust#91553

2 years agoRollup merge of #91922 - LegionMammal978:less-inband-mir_dataflow, r=nagisa
Matthias Krüger [Sat, 18 Dec 2021 09:26:38 +0000 (10:26 +0100)]
Rollup merge of #91922 - LegionMammal978:less-inband-mir_dataflow, r=nagisa

Remove `in_band_lifetimes` from `rustc_mir_dataflow`

See #91867 for more information.

2 years agoRollup merge of #91909 - lnicola:rust-analyzer-2021-12-14, r=lnicola
Matthias Krüger [Sat, 18 Dec 2021 09:26:37 +0000 (10:26 +0100)]
Rollup merge of #91909 - lnicola:rust-analyzer-2021-12-14, r=lnicola

:arrow_up: rust-analyzer

r? ```@ghost```

2 years agoRollup merge of #91896 - pitaj:91867-passes, r=michaelwoerister
Matthias Krüger [Sat, 18 Dec 2021 09:26:36 +0000 (10:26 +0100)]
Rollup merge of #91896 - pitaj:91867-passes, r=michaelwoerister

Remove `in_band_lifetimes` for `rustc_passes`

#91867

2 years agoRollup merge of #91516 - rukai:improve_mut_addition_help, r=estebank
Matthias Krüger [Sat, 18 Dec 2021 09:26:36 +0000 (10:26 +0100)]
Rollup merge of #91516 - rukai:improve_mut_addition_help, r=estebank

Improve suggestion to change struct field to &mut

r? ``@estebank``

Now displays a proper underline style suggestion instead of including the code change inline with the message.

2 years agoRollup merge of #91439 - ecstatic-morse:const-cmp-trait-default-methods, r=oli-obk
Matthias Krüger [Sat, 18 Dec 2021 09:26:35 +0000 (10:26 +0100)]
Rollup merge of #91439 - ecstatic-morse:const-cmp-trait-default-methods, r=oli-obk

Mark defaulted `PartialEq`/`PartialOrd` methods as const

WIthout it, `const` impls of these traits are unpleasant to write. I think this kind of change is allowed now. although it looks like it might require some Miri tweaks. Let's find out.

r? ```@fee1-dead```

2 years agohir: Do not introduce dummy type names for `extern` blocks in def paths
Vadim Petrochenkov [Fri, 17 Dec 2021 08:45:15 +0000 (16:45 +0800)]
hir: Do not introduce dummy type names for `extern` blocks in def paths

Use a separate nameless `DefPathData` variant instead