Skip to content

Conversation

DusterTheFirst
Copy link

@DusterTheFirst DusterTheFirst commented Apr 1, 2021

The What

When using the #[async_attributes::main] macro and compiling a rust program with a syntax error in the main function, the user would be met with a big, intrusive, unhelpful error that there is no main function in the file. This can get very annoying, especially when paired with rust-analyzer and its on screen errors (taking up the whole file).

The Why

This error is caused when the main proc-macro fails to parse the inputted function with the syn::parse_macro_input!, causing it to return early, producing no main function.

The Fix

This PR uses the syn::parse function directly so that a parsing error can be caught, producing a placeholder empty main function to suppress the extraneous error. This placeholder main function will never be able to compile into a final executable since the macro also emits a compiler_error!.

@DusterTheFirst DusterTheFirst marked this pull request as ready for review April 1, 2021 21:28
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.

1 participant