Implement auto-ref
dtolnay opened this issue · comments
David Tolnay commented
If a library method is declared to take self by reference or mut reference and the user's macro invokes the method with a receiver that is not a reference, it would be good to mirror rustc's rules around automatically taking a reference to the receiver.
library! {
extern crate krate {
type Struct;
impl Struct {
fn method(&self);
}
}
}
let receiver = /* ... by value */;
RUNTIME::krate::Struct::method.INVOKE(receiver.reference()); // should not require reference()