Skip to content

trait_solver: normalizes_to todo! on UnsafeBinder for Pointee/DiscriminantKind #584

Description

@SebTardif

Bug

compiler/rustc_next_trait_solver/src/solve/normalizes_to.rs:

  • consider_builtin_pointee_candidate: ty::UnsafeBinder(_) => todo!()
  • consider_builtin_discriminant_kind_candidate: ty::UnsafeBinder(_) => todo!("discr subgoal...")

Origin

Unsafe binder type system work; incomplete solver support:

rust-lang@9a1c5eb5b38

Impact

ICE normalizing <unsafe<T> as Pointee>::Metadata or <unsafe<T> as DiscriminantKind>::Discriminant (feature-gated; part of #567).

Fix

Pointee: recurse through inner type via with_replaced_self_ty. Discriminant: use discriminant_ty which already handles UnsafeBinder inners.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions