fn(&'a ())>) { x.method(); // ok, method call B:: fn(&'a ())>::method(x); // ok, explici...">

inherent method selection uses subtyping even when using paths · Issue #126227 · rust-lang/rust (original) (raw)

Skip to content

Provide feedback

Saved searches

Use saved searches to filter your results more quickly

Sign up

Appearance settings

@lcnr

Description

@lcnr

struct B(T);

impl B<fn(&'static ())> { fn method(self) { println!("hey"); } }

fn foo(x: B<for<'a> fn(&'a ())>) { x.method(); // ok, method call B::<for<'a> fn(&'a ())>::method(x); // ok, explicit path }

fn main() {

}

I would like us to change method selection for associated items to use equality. It feels very wrong to completely ignore the user type annotation here:

struct B(T);

impl B<fn(&'static ())> { fn method(self) { println!("hey"); } }

fn foo(y: B<fn(&'static ())>) { // looks like it requires a hr fn pointer, // but we never check that. B::<for<'a> fn(&'a ())>::method(y); }

fn main() {}

cc #126128 @compiler-errors @oli-obk