Skip to content

Conversation

@matthiaskrgr
Copy link
Member

@matthiaskrgr matthiaskrgr commented Nov 27, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

A4-Tacks and others added 30 commits November 6, 2025 14:53
Example
---
```rust
#![attr] $0
```

**Before this PR**

Empty completion list

**After this PR**

```text
ma makro!(…) macro_rules! makro
md module
kw async
kw const
kw crate::
kw enum
kw extern
kw fn
kw impl
kw impl for
kw mod
kw pub
kw pub(crate)
kw pub(super)
kw self::
kw static
kw struct
kw trait
kw type
kw union
kw unsafe
kw use
sn macro_rules
sn tfn (Test function)
sn tmod (Test module)
```
Example
---
```rust
enum Enum<T> {
    Unit,
    Tuple(T),
}

type EnumAlias<T> = Enum<T>;

fn f(x: EnumAlias<u8>) {
    match x {
        $0 => (),
        _ => (),
    }

}
```

**Before this PR**

```text
en Enum
bn Enum::Tuple(…) Enum::Tuple($1)$0
bn Enum::Unit          Enum::Unit$0
kw mut
kw ref
```

**After this PR**

```text
en Enum
ta EnumAlias
bn Enum::Tuple(…) Enum::Tuple($1)$0
bn Enum::Unit          Enum::Unit$0
kw mut
kw ref
```
Example
---

**std example**:

```rust
fn foo(nums: std::rc::Rc<[i32]>) {
    nums.$0
}
```

---

**minicore example**:

```rust
struct Foo;
impl Foo { fn iter(&self) -> Iter { Iter } }
impl IntoIterator for &Foo {
    type Item = ();
    type IntoIter = Iter;
    fn into_iter(self) -> Self::IntoIter { Iter }
}
struct Ref;
impl core::ops::Deref for Ref {
    type Target = Foo;
    fn deref(&self) -> &Self::Target { &Foo }
}
struct Iter;
impl Iterator for Iter {
    type Item = ();
    fn next(&mut self) -> Option<Self::Item> { None }
}
fn foo() {
    Ref.$0
}
```

**Before this PR**

```text
me deref() (use core::ops::Deref)                 fn(&self) -> &<Self as Deref>::Target
me into_iter() (as IntoIterator)           fn(self) -> <Self as IntoIterator>::IntoIter
me iter()                                                             fn(&self) -> Iter
```

**After this PR**

```text
me deref() (use core::ops::Deref)                 fn(&self) -> &<Self as Deref>::Target
me into_iter() (as IntoIterator)           fn(self) -> <Self as IntoIterator>::IntoIter
me iter()                                                             fn(&self) -> Iter
me iter().by_ref() (as Iterator)                             fn(&mut self) -> &mut Self
me iter().into_iter() (as IntoIterator)    fn(self) -> <Self as IntoIterator>::IntoIter
me iter().next() (as Iterator)        fn(&mut self) -> Option<<Self as Iterator>::Item>
me iter().nth(…) (as Iterator) fn(&mut self, usize) -> Option<<Self as Iterator>::Item>
```
Examples
---
```rust
enum Variant {
    Undefined,
    $0Minor,
    M$0ajor,
}
```
->
```rust
enum Variant {
    Undefined,
    Minor,
    Major,
}

impl Variant {
    /// Returns `true` if the variant is [`Minor`].
    ///
    /// [`Minor`]: Variant::Minor
    #[must_use]
    fn is_minor(&self) -> bool {
        matches!(self, Self::Minor)
    }

    /// Returns `true` if the variant is [`Major`].
    ///
    /// [`Major`]: Variant::Major
    #[must_use]
    fn is_major(&self) -> bool {
        matches!(self, Self::Major)
    }
}
```

---

```rust
enum Value {
    Unit(()),
    $0Number(i32),
    Text(String)$0,
}
```
->
```rust
enum Value {
    Unit(()),
    Number(i32),
    Text(String),
}

impl Value {
    fn try_into_number(self) -> Result<i32, Self> {
        if let Self::Number(v) = self {
            Ok(v)
        } else {
            Err(self)
        }
    }

    fn try_into_text(self) -> Result<String, Self> {
        if let Self::Text(v) = self {
            Ok(v)
        } else {
            Err(self)
        }
    }
}
```

---

```rust
enum Value {
    Unit(()),
    $0Number(i32),
    Text(String)$0,
}
```
->
```rust
enum Value {
    Unit(()),
    Number(i32),
    Text(String),
}

impl Value {
    fn as_number(&self) -> Option<&i32> {
        if let Self::Number(v) = self {
            Some(v)
        } else {
            None
        }
    }

    fn as_text(&self) -> Option<&String> {
        if let Self::Text(v) = self {
            Some(v)
        } else {
            None
        }
    }
}
```
This adds a type_of_type_placeholder arena to InferenceResult to record
which type a given type placeholder gets inferred to.
This uses the new InferenceResult::type_of_type_placeholder data to
turn type references into completely resolved types instead of just
returning the lexical type.
When met with types with placeholders, this ensures this assist
extracts the inferred type instead of the type with placeholders.

For instance, when met with this code:
```
fn main() {
    let vec: Vec<_> = vec![4];
}
```
selecting Vec<_> and extracting an alias will now yield `Vec<i32>`
instead of `Vec<_>`.
With the extra InferenceResult that maps type placeholders to their
inferred type, we can now easily display inlay hints for them.
…pzznu

Use inferred type in “extract type as type alias” assist and display inferred type placeholder `_` inlay hints
minor: add regression tests for add_missing_impl_members
…port-for-postcard

Integrate postcard support into proc-macro server CLI
Basic support for declarative attribute/derive macros
Example
---
```rust
fn foo() { bar(, $0); }
fn bar(x: u32, y: i32) {}
```

**Before this PR**

```text
ty: u32, name: x
```

**After this PR**

```text
ty: i32, name: y
```
This increases the binary size of `rust-analyzer.exe` from 42.4 MB to 42.6 MB.
Which should be acceptable for eliminating 7 DLL dependencies.
fix: fix parameter info with missing arguments
Build releases with static CRT for `-windows-msvc` targets.
completions: Fix completions disregarding snippet capabilities
`rust-analyzer` subtree update

Subtree update of `rust-analyzer` to rust-lang/rust-analyzer@a2a4a95.

Created using https://github.com/rust-lang/josh-sync.

r? `@ghost`
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-compiletest Area: The compiletest test runner A-testsuite Area: The testsuite used to check the correctness of rustc S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rust-analyzer Relevant to the rust-analyzer team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) rollup A PR which is a rollup labels Nov 27, 2025
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Nov 27, 2025

📌 Commit b2f8c16 has been approved by matthiaskrgr

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Nov 27, 2025
@bors
Copy link
Collaborator

bors commented Nov 27, 2025

⌛ Testing commit b2f8c16 with merge c86564c...

@bors
Copy link
Collaborator

bors commented Nov 27, 2025

☀️ Test successful - checks-actions
Approved by: matthiaskrgr
Pushing c86564c to main...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Nov 27, 2025
@bors bors merged commit c86564c into rust-lang:main Nov 27, 2025
12 checks passed
@rustbot rustbot added this to the 1.93.0 milestone Nov 27, 2025
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#147071 constify from_fn, try_from_fn, try_map, map e8a904bed131e5c5f48cd65a3bb23549e5bd42d4 (link)
#148930 tweak editor configs 7c7db82070e92db0fb18e4b7de98b52e9316087e (link)
#149320 -Znext-solver: normalize expected function input types when… f693b184fbddd9fcdfb665e83f05a08c07d4b4df (link)
#149363 Port the #![windows_subsystem] attribute to the new attri… 9a45fa5199f9b3608e739ec029492cbcbe7f40cc (link)
#149378 make run-make tests use 2024 edition by default e9dd18da0c506a5ca65729ff2d621da2e7116817 (link)
#149381 Add impl TrustedLen on BTree{Map,Set} iterators ee4c7904ed5cff2fcfe9d5340fb7cc10acbf25bc (link)
#149388 remove session+blob decoder construction 183b4e2ed78ae3603aa7d7b0c44d571637d3b24f (link)
#149390 rust-analyzer subtree update 5283bbe80416da91f04e7756ab9a4c07f69765d4 (link)

previous master: f392ed53ca

In the case of a perf regression, run the following command for each PR you suspect might be the cause: @rust-timer build $SHA

@github-actions
Copy link
Contributor

What is this? This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.

Comparing f392ed5 (parent) -> c86564c (this PR)

Test differences

Show 454 test diffs

Stage 0

  • errors::verify_codegen_ssa_aarch64_softfloat_neon_126: [missing] -> pass (J2)
  • errors::verify_codegen_ssa_aarch64_softfloat_neon_127: pass -> [missing] (J2)
  • errors::verify_codegen_ssa_aix_strip_not_used_122: [missing] -> pass (J2)
  • errors::verify_codegen_ssa_dlltool_fail_import_library_116: [missing] -> pass (J2)
  • errors::verify_codegen_ssa_dynamic_linking_with_lto_134: [missing] -> pass (J2)
  • errors::verify_codegen_ssa_dynamic_linking_with_lto_135: pass -> [missing] (J2)
  • errors::verify_codegen_ssa_error_calling_dlltool_119: pass -> [missing] (J2)
  • errors::verify_codegen_ssa_error_creating_import_library_121: [missing] -> pass (J2)
  • errors::verify_codegen_ssa_error_creating_import_library_122: pass -> [missing] (J2)
  • errors::verify_codegen_ssa_error_creating_remark_dir_119: [missing] -> pass (J2)
  • errors::verify_codegen_ssa_error_creating_remark_dir_120: pass -> [missing] (J2)
  • errors::verify_codegen_ssa_forbidden_target_feature_attr_114: [missing] -> pass (J2)
  • errors::verify_codegen_ssa_forbidden_target_feature_attr_115: pass -> [missing] (J2)
  • errors::verify_codegen_ssa_invalid_monomorphization_basic_integer_or_ptr_type_78: pass -> [missing] (J2)
  • errors::verify_codegen_ssa_invalid_monomorphization_cast_wide_pointer_107: [missing] -> pass (J2)
  • errors::verify_codegen_ssa_invalid_monomorphization_expected_element_type_104: [missing] -> pass (J2)
  • errors::verify_codegen_ssa_invalid_monomorphization_expected_return_type_100: [missing] -> pass (J2)
  • errors::verify_codegen_ssa_invalid_monomorphization_expected_vector_element_type_113: pass -> [missing] (J2)
  • errors::verify_codegen_ssa_invalid_monomorphization_floating_point_type_81: [missing] -> pass (J2)
  • errors::verify_codegen_ssa_invalid_monomorphization_floating_point_type_82: pass -> [missing] (J2)
  • errors::verify_codegen_ssa_invalid_monomorphization_inserted_type_98: [missing] -> pass (J2)
  • errors::verify_codegen_ssa_invalid_monomorphization_mask_wrong_element_type_103: pass -> [missing] (J2)
  • errors::verify_codegen_ssa_invalid_monomorphization_mismatched_lengths_101: [missing] -> pass (J2)
  • errors::verify_codegen_ssa_invalid_monomorphization_return_element_97: pass -> [missing] (J2)
  • errors::verify_codegen_ssa_invalid_monomorphization_return_integer_type_93: [missing] -> pass (J2)
  • errors::verify_codegen_ssa_invalid_monomorphization_return_length_95: [missing] -> pass (J2)
  • errors::verify_codegen_ssa_invalid_monomorphization_return_length_input_type_90: [missing] -> pass (J2)
  • errors::verify_codegen_ssa_invalid_monomorphization_return_length_input_type_91: pass -> [missing] (J2)
  • errors::verify_codegen_ssa_invalid_monomorphization_simd_argument_84: pass -> [missing] (J2)
  • errors::verify_codegen_ssa_invalid_monomorphization_simd_first_86: pass -> [missing] (J2)
  • errors::verify_codegen_ssa_invalid_monomorphization_simd_index_out_of_bounds_98: pass -> [missing] (J2)
  • errors::verify_codegen_ssa_invalid_monomorphization_simd_input_85: pass -> [missing] (J2)
  • errors::verify_codegen_ssa_invalid_monomorphization_simd_second_86: [missing] -> pass (J2)
  • errors::verify_codegen_ssa_invalid_monomorphization_simd_third_88: pass -> [missing] (J2)
  • errors::verify_codegen_ssa_invalid_monomorphization_third_argument_length_92: [missing] -> pass (J2)
  • errors::verify_codegen_ssa_invalid_monomorphization_third_argument_length_93: pass -> [missing] (J2)
  • errors::verify_codegen_ssa_invalid_monomorphization_unrecognized_intrinsic_82: [missing] -> pass (J2)
  • errors::verify_codegen_ssa_invalid_monomorphization_unsupported_operation_112: pass -> [missing] (J2)
  • errors::verify_codegen_ssa_invalid_monomorphization_unsupported_symbol_of_size_106: pass -> [missing] (J2)
  • errors::verify_codegen_ssa_lto_dylib_132: [missing] -> pass (J2)
  • errors::verify_codegen_ssa_shuffle_indices_evaluation_75: [missing] -> pass (J2)
  • errors::verify_codegen_ssa_target_feature_safe_trait_114: pass -> [missing] (J2)
  • errors::verify_codegen_ssa_unknown_ctarget_feature_prefix_127: [missing] -> pass (J2)
  • errors::verify_codegen_ssa_unstable_ctarget_feature_128: [missing] -> pass (J2)
  • errors::verify_codegen_ssa_xcrun_failed_invoking_123: [missing] -> pass (J2)
  • errors::verify_codegen_ssa_xcrun_failed_invoking_124: pass -> [missing] (J2)
  • errors::verify_codegen_ssa_xcrun_unsuccessful_124: [missing] -> pass (J2)
  • errors::verify_codegen_ssa_xcrun_unsuccessful_125: pass -> [missing] (J2)

Stage 1

  • errors::verify_codegen_ssa_aarch64_softfloat_neon_127: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_aix_strip_not_used_122: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_compiler_builtins_cannot_call_120: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_compiler_builtins_cannot_call_121: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_dlltool_fail_import_library_116: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_dlltool_fail_import_library_117: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_error_calling_dlltool_118: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_error_calling_dlltool_119: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_error_creating_import_library_121: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_error_creating_remark_dir_120: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_basic_integer_or_ptr_type_77: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_basic_integer_type_77: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_expected_element_type_105: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_expected_pointer_108: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_expected_usize_109: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_floating_point_vector_80: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_floating_point_vector_81: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_inserted_type_98: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_invalid_bitmask_89: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_invalid_bitmask_90: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_mismatched_lengths_101: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_mismatched_lengths_102: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_return_length_95: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_return_length_input_type_91: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_return_type_99: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_simd_argument_83: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_simd_argument_84: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_simd_first_85: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_simd_input_84: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_simd_shuffle_94: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_simd_third_87: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_third_argument_length_92: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_unsupported_cast_111: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_unsupported_operation_111: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_unsupported_symbol_106: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_unsupported_symbol_107: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_unsupported_symbol_of_size_105: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_lto_disallowed_132: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_lto_proc_macro_133: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_shuffle_indices_evaluation_75: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_shuffle_indices_evaluation_76: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_target_feature_safe_trait_114: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_xcrun_sdk_path_warning_126: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_xcrun_unsuccessful_125: pass -> [missing] (J0)
  • token_stream::tests::roundtrip: pass -> [missing] (J0)
  • [ui] tests/ui/coercion/fudge-inference/fn-ret-trait-object-propagated-to-inputs-issue-149379-1.rs#current: [missing] -> pass (J2)
  • [ui] tests/ui/coercion/fudge-inference/fn-ret-trait-object-propagated-to-inputs-issue-149379-2.rs#current: [missing] -> pass (J2)
  • [ui] tests/ui/coercion/fudge-inference/fn-ret-trait-object-propagated-to-inputs-issue-149379-3.rs#next: [missing] -> pass (J2)
  • [ui] tests/ui/traits/next-solver/fudge-inference/fudge-inference-with-aliases-3.rs: [missing] -> pass (J2)

Stage 2

  • [ui] tests/ui/coercion/fudge-inference/fn-ret-trait-object-propagated-to-inputs-issue-149379-2.rs#current: [missing] -> pass (J1)
  • [ui] tests/ui/coercion/fudge-inference/fn-ret-trait-object-propagated-to-inputs-issue-149379-2.rs#next: [missing] -> pass (J1)
  • array::const_array_ops: [missing] -> pass (J3)

(and 168 additional test diffs)

Additionally, 186 doctest diffs were found. These are ignored, as they are noisy.

Job group index

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard c86564c412a5949088a53b665d8b9a47ec610a39 --output-dir test-dashboard

And then open test-dashboard/index.html in your browser to see an overview of all executed tests.

Job duration changes

  1. dist-aarch64-apple: 6418.0s -> 7863.9s (+22.5%)
  2. aarch64-apple: 10004.6s -> 8025.5s (-19.8%)
  3. aarch64-gnu: 6530.6s -> 7693.2s (+17.8%)
  4. dist-x86_64-apple: 7796.9s -> 6872.9s (-11.9%)
  5. tidy: 170.6s -> 187.2s (+9.7%)
  6. aarch64-msvc-2: 4860.4s -> 5279.3s (+8.6%)
  7. i686-msvc-1: 10503.5s -> 9686.7s (-7.8%)
  8. x86_64-gnu-stable: 7503.6s -> 6922.5s (-7.7%)
  9. arm-android: 6202.0s -> 5732.5s (-7.6%)
  10. dist-i686-msvc: 8466.8s -> 7854.9s (-7.2%)
How to interpret the job duration changes?

Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (c86564c): comparison URL.

Overall result: ❌ regressions - no action needed

@rustbot label: -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
0.4% [0.3%, 0.4%] 2
Regressions ❌
(secondary)
0.1% [0.1%, 0.1%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.4% [0.3%, 0.4%] 2

Max RSS (memory usage)

Results (primary 3.5%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
3.5% [3.5%, 3.5%] 1
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 3.5% [3.5%, 3.5%] 1

Cycles

Results (primary 5.0%, secondary 1.3%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
5.0% [5.0%, 5.0%] 1
Regressions ❌
(secondary)
2.8% [2.6%, 3.1%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-1.8% [-1.8%, -1.8%] 1
All ❌✅ (primary) 5.0% [5.0%, 5.0%] 1

Binary size

Results (primary 0.6%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
0.6% [0.5%, 1.1%] 4
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.6% [0.5%, 1.1%] 4

Bootstrap: 472.637s -> 474.675s (0.43%)
Artifact size: 386.94 MiB -> 386.94 MiB (0.00%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-compiletest Area: The compiletest test runner A-testsuite Area: The testsuite used to check the correctness of rustc merged-by-bors This PR was explicitly merged by bors. rollup A PR which is a rollup S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rust-analyzer Relevant to the rust-analyzer team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver)

Projects

None yet

Development

Successfully merging this pull request may close these issues.