Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
stage1: improve message for missing fn return type
Coming from other languages it might be tempting for programmers to accidentally leave out the return type instead of returning 'void'. The error for this used to be error: invalid token: '{' pub fn main() { ^ which is misleading. The '{' is expected but only after a return type. The new message is error: expected return type (use 'void' to return nothing), found: '{' pub fn main() { ^ which not only points out the real error but also hints at a (probably) very common case where someone coming from e.g. Go is used to not specifying a return type if a function returns nothing and thus forgets to put 'void' there. It might seem overkill to hint at the 'void' option but then the compiler error messages are our user interface to the programmer. We can be better than other languages in our error messages and leaving out the return type seems to be a rather clear indication of the above mentioned issue. Adding this will help more than distract.
- Loading branch information
96e5931
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A test in
test/compile_errors.zig
would make sure this is transferred over to stage2.96e5931
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note that we already have a separate compile error for missing return types in stage2, which is tested here:
zig/lib/std/zig/parser_test.zig
Line 4905 in 530e67c