Skip to content
This repository was archived by the owner on Nov 23, 2025. It is now read-only.
This repository was archived by the owner on Nov 23, 2025. It is now read-only.

Grammar allows for operations preceding break/continue keywords #55

@connorjclark

Description

@connorjclark
while (true) {
    !break;
}

while (true) {
    --break;
}

while (true) {
    1 + break;
}

All three pass the grammar as defined in grammar.y, and I believe the first two have no impact on actual zig compilation results. The third one fails the zig compiler due to unreachable code (it considers the 1 + to be unreachable)

PrimaryExpr is the relevant rule. All of the binary and unary operations coming in from PrefixExpr on the left-hand-side is what allows for this unexpected grammar.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions