Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add detection of main under more circumstances
The cases that are intended to be added by this commit are: - Code with no comments but ends in a semicolon before the declaration of `main`. No comments was required to prevent `//` being included to comment out the line. This was done by not allowing `/` as part of the code before the `;` While this is more restrictive than necessary, it didn't seem likely that the code before `main` would include `/` so didn't seem worthwhile to take the performance hit to make the check less restrictive. To prevent long regex scans going multiple lines I also disallowed newlines in the code by including `\n` and `\r` as disallowed characters. The whole point is code on the same line as `main` so this seemed fine and would help prevent unnecessarily matching all lines before main when it doesn't matter. - Allow multiline comments within the arguments area of main that both start and end within the brackets. I'm not expecting a substantial performance cost from this one because this case is near the end of the matching. I used the following test cases ```rust fn main() { // Should work println!("Hello, world!"); } //;fn main() { //Shouldn't work println!("Hello, world!"); } use std; fn main(){ println!("Hello, world!"); } // Should work const fn main() { // Should work println!("Hello, world!"); } /* fn main() {} */ // Shouldn't work fn main(/* comment */) { // Should work // snip } ``` Co-authored-by: Jake Goulding <[email protected]>
- Loading branch information