Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Wait, how don't macro need to take escaped sigils?

Like range! takes range!('[' 0 , Inf ')' )?

Is 'do' still a keyword? I remember it being removed, pretty much everywhere. I just assumed it was thrown away.



They need to take balanced braces/parens/brackets (i.e. only escaped if they are possibly unbalanced), so that Rust source can still be parsed without having to run the macro expander concurrently.

And, it looks like do is no longer a keyword at all, I must've missed that part of the do-removal patch! So it is possible to call that macro do.


> Wait, how don't macro need to take escaped sigils?

These are proper (hygienic) syntax macros, much like Scheme's syntax-rules. C's "macros" only work at the token level.

> Is 'do' still a keyword?

I believe it is still a reserved keyword, but not used anymore.


It appears to not be a reserved word at all:

  $ echo 'fn main() { let do = 1; }' | rustc -
runs with just an unused variable warning (if it were reserved it would fail with "error: `do` is a reserved keyword").


It probably should be reserved.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: