https://issues.dlang.org/show_bug.cgi?id=22529
Issue ID: 22529
Summary: wrong deprecation about empty statement
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Keywords: diagnostic
Severity: regression
Priority: P1
Component: dmd
Assignee: [email protected]
Reporter: [email protected]
Code:
====
---
void main() {
f()
return;
}
---
Output:
======
> /tmp/temp_7FCF86B2C530.d:4:3: Error: found `return` when expecting `;`
> following statement
> /tmp/temp_7FCF86B2C530.d:4:9: Deprecation: use `{ }` for an empty statement,
> not `;`
Problem:
=======
The error message is right, the deprecation message is wrong. There is zero
empty statement in the code.
There is just one errored ExpStatement.
Run.dlang.io:
============
>Up to 2.074.1: Failure with output: onlineapp.d(3): Error: found 'return'
>> when expecting ';' following statement
> 2.075.1: Failure with output:
>-----
>onlineapp.d(3): Error: found 'return' when expecting ';' following statement
>onlineapp.d(3): Deprecation: use '{ }' for an empty statement, not a ';'
>-----
>Since 2.076.1: Failure with output:
>-----
>onlineapp.d(3): Error: found `return` when expecting `;` following statement
>onlineapp.d(3): Deprecation: use `{ }` for an empty statement, not `;`
>-----
the diagnostic was correct until 2.074.1
--