rust-lang / rust-lang/rust

wall of `rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy `

Open
#154,058 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

C-bug I-compilemem needs-triage
Dominant language
Rust
Stars
119k
Forks
16.1k
PR merge metrics
PR metrics pending

Description

I tried this code:

#![feature(unboxed_closures)]
use std::fmt::Debug;

fn foldl<T, U, F>(values: &[T], initial: U, function: F) -> U
where
    U: FnMut + Debug,
    T: Debug,
    F: FnMut(U, &T) -> U,
{
    match values {
        _ => {
            match values {
                &[ref head @ .., ref tail] => foldr(head, function(initial, tail), function),
                _ => {}
            }
        }
    }
}

fn foldr<T, U, F>(values: &[T], mut function: F) -> U
where
    U: Clone,
    F: FnMut(&T, U) -> U,
{

}

pub fn main() {
    let sum = foldr();
    assert_eq!(sum, 15);
}

I expected to see this happen:
Timely termination

Instead, this happened:
This will print an error and then an seemingly unending (well, until ram runs out) amount of

WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
Meta

rustc --version --verbose:

rustc 1.96.0-nightly (91021ccc7 2026-03-17)
binary: rustc
commit-hash: 91021ccc790478a1a89c003e7d32b8d155ae6aae
commit-date: 2026-03-17
host: x86_64-unknown-linux-gnu
release: 1.96.0-nightly
LLVM version: 22.1.0
Backtrace

error[E0107]: missing generics for trait `FnMut`
   --> code.rs:6:8
    |
  6 |     U: FnMut + Debug,
    |        ^^^^^ expected 1 generic argument
    |
note: trait defined here, with 1 generic parameter: `Args`
   --> /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:163:17
    |
163 | pub const trait FnMut<Args: Tuple>: FnOnce<Args> {
    |                 ^^^^^ ----
help: add missing generic argument
    |
  6 |     U: FnMut<Args> + Debug,
    |             ++++++

 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
 WARN rustc_infer::infer::relate::generalize may incompletely handle alias type: AliasTy { args: [U/#1, (&'!4_0.Named(DefId(0:15 ~ code[55f1]::foldr::'_)) T/#0, ?7t)], def_id: DefId(2:4349 ~ core[cd06]::ops::function::FnOnce::Output), .. }
...

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at rustc_infer::infer::relate::generalize and reproduce the behavior with the supplied Rust snippet using the reported nightly compiler. Investigate why the alias type produces repeated warnings and fails to terminate; done means the reproducer terminates without exhausting memory or flooding diagnostics.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
compilers
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.