Improved error for undefined but used left side of declarations #3451
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This addresses #2828
Declaring a variable at the end of a function which expects a return value or having generally a variable declaration where the compiler expects to use the return value caused in most cases an error stating that the variable is undefined but its value is used:
This bit of code triggers the following error on 0.33.1:
The presence of the second error was also considered to be erroneous.
This patch discriminates in the
is_lvalue
function frompass/refer.c
cases where the left-hand side of the assignment is not anlvalue
and cases where it triggers an error. This way, the compiler can tell between the left side not being something that can be assigned to or it having triggered an error.Additionally, an Info message is triggered when the left side's old value is needed in a declaration.
This is what the error message now looks like: