ryuukk_ at
Sun Feb 26 22:05:16 UTC 2023

On Sunday, 26 February 2023 at 14:17:50 UTC, ryuukk_ wrote:
> On Sunday, 26 February 2023 at 07:11:55 UTC, Paul Backus wrote:
>> Since `Expression` contains `Binary` and `Unary`, and `Binary` 
>> and `Unary` contain `Expression`, that means `Expression` 
>> contains itself--which is not allowed, because it would result 
>> in `Expression.sizeof` being infinite.
> It should display the proper error message then

Example of error message for this particular error with zig:

An error occurred:
/tmp/playground921468696/play.zig:4:20: error: union 
'play.Expression' depends on itself
const Expression = union(enum) {
/tmp/playground921468696/play.zig:23:5: note: while checking this 
     expr: Expression
/tmp/playground921468696/play.zig:8:5: note: while checking this 
     group: Group,
referenced by:
     callMain: /usr/local/bin/lib/std/start.zig:604:17
     remaining reference traces hidden; use '-freference-trace' to 
see all reference traces


I don't particularly enjoy zig, but they tell us how errors 
should be reported to the users, they do it very nicely

More information about the Digitalmars-d-learn mailing list