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

Added help for eof message inside macro invocation #33963

Closed
wants to merge 1 commit into from

Conversation

gchp
Copy link
Contributor

@gchp gchp commented May 30, 2016

Fixes #27569

@rust-highfive
Copy link
Collaborator

r? @nikomatsakis

(rust_highfive has picked a reviewer for you, use r? to override)

self.this_token_descr());
return Err(self.span_fatal_help(
self.span, &msg, &help));
}
Copy link
Contributor

@LeoTestard LeoTestard May 31, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You cannot know here that you are parsing the arguments of a macro invocation. I suspect that the following code:

static foo: u32 =

will trigger your error message. Which is obviously not what you want.

Besides, your code only handles the case where the macro parsing reaches EOF while trying to parse an expr. Thing is, macros can parse a lot of different fragments of Rust syntax and match arbitrary Rust tokens. So there are a lot of other places where you should handle this as well. As far as I know, it's not possible to handle them all because for those who use the Rust parser (like expr), you cannot know if you are parsing a macro invocation or not.

Maybe the easier solution would be to introduce a special token to indicate end of macro invocation that would behave like EOF except for error messages but that would be a lot of changes just to add an help message.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe the easier solution would be to introduce a special token to indicate end of macro invocation that would behave like EOF except for error messages but that would be a lot of changes just to add an help message.

This seems like a good idea to me, too.

@nikomatsakis
Copy link
Contributor

Since it's been a little while, I'm going to close this PR, just to help clear out the queue of work. I do think it's important to resolve the problems that @LeoTestard pointed out here before trying to land this. @gchp please feel free to re-open if you have a chance to make progress on that front! Thanks. :)

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

Successfully merging this pull request may close these issues.

4 participants