Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Port to new proc-macro interface #92

Closed
lambda-fairy opened this issue Jul 7, 2017 · 5 comments
Closed

Port to new proc-macro interface #92

lambda-fairy opened this issue Jul 7, 2017 · 5 comments
Assignees

Comments

@lambda-fairy
Copy link
Owner

Now that rust-lang/rust#40939 has landed, we can start using it in Maud.

Note that the new interface doesn't have a fleshed out diagnostics API yet, so error messages won't have spans in the mean time.

@lambda-fairy
Copy link
Owner Author

I've done most of the groundwork on the proc-macro branch. Just the control structures (@if etc.) are missing at this point., so there shouldn't be much work left from here.

  • Clippy might complain about collapsible else { if .. } blocks. This will be covered in Clippy complains about else { if .. } blocks #93.

  • You should only need to touch the maud_macros/src/parse.rs module. Other tasks (like moving lints and HTML escaping into their own crates) will be done in a separate ticket.

  • Feel free to refer to the existing parser for inspiration.

@lambda-fairy
Copy link
Owner Author

I've implemented @let expressions. Had to refactor the code to not discard spans, since they contained hygiene information (whoops).

Removing the "hard" tag because the difficult work has already been done.

@lambda-fairy
Copy link
Owner Author

No-one else has volunteered yet so I'm doing the rest of the work myself.

@lambda-fairy
Copy link
Owner Author

Only thing left is @match expressions now.

@lambda-fairy
Copy link
Owner Author

Implemented in #95

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant