Hacker News new | ask | show | jobs
by steveklabnik 104 days ago
Regular variable definition shadows. Macros expand to regular Rust code, they could always be replaced by the expanded body.
1 comments

yes, but the code inside is unsafe. the pin macro is like a safe function.
I'm not sure what that has to do with anything. The macro isn't what makes it safe. The unsafe code being properly written is.
but without macros, how would you expose a safe interface?

  fn pin(x: T) -> Pin<&mut T> { ... }
would move the value
Your macroless variant of Rust would offer a safe builtin that does this. It doesn't need to be implemented with a macro.