Skip to content
Topaz6.0 · Before release
Download

Search documentation

Specification 6.0 · Not released · Tested product 5.21.3

Use arrow keys to choose a result. Press Enter to open.

Type an API name, diagnostic number, rule, or project topic.

    Diagnostics

    TPZ2001: Unexpected token

    The parser found a token that cannot appear in this grammar position.

    Diagnostic and cause

    Link

    Unexpected token

    Family
    topaz
    Phase
    parse
    Code
    TPZ2001

    Cause and conditions

    A let declaration has a binding pattern before =. Omitting it is a parse error.

    Response

    Insert the intended binding name between let and =. Fix this first parse error before interpreting any recovery messages.

    Source evidence

    Compiler phase: parse.

    Compiler explanation: The parser found a token that cannot appear in this grammar position.

    Message templates. The marker ⟨value⟩ stands for text computed for the reported program.

    • expected an expression Source
    • expected a statement separator Source
    • expected a statement Source
    • a record spread ... must be the FIRST element and appear at most once Source
    • expected , or } Source
    • expected : after timeout Source
    • expected a duration literal, e.g. 3s Source
    • expected a concurrent arm Source
    • concurrent requires at least one arm Source
    • expected case Source
    • match requires at least one case Source
    • expected a range endpoint after .., e.g. 1..5 Source
    • a record type requires at least one field Source
    • a literal type cannot contain interpolation Source
    • a record pattern requires at least one field Source

    Observed for the candidate in Topaz 5.21.3. Execution

    • error[TPZ2001]: expected an expression

    A let declaration needs a binding pattern before its initializer. In the reproduction, = appears where that pattern must begin, so parsing stops at the equals sign.

    Rulediagnostics.tpz2001.rule

    Trigger and repair

    A let declaration has a binding pattern before =. Omitting it is a parse error.

    Source evidence

    Response

    Link

    Insert the intended binding name between let and =. Fix this first parse error before interpreting any recovery messages.

    Reproduction and verification

    Link

    Rejected program

    Link
    example.tpzRejected programOpen in Playground
    1. let = 1
    Expected outputNonzero exit
    No stdout.
    $ topaz check example.tpz · target product 5.21.3
    Expected result

    Expected result

    Rejection during parse. Nonzero exit.

    • TPZ2001 diagnostic-tpz2001 at example.tpz:1:5

    The expected diagnostic, cause, source location, and accompanying diagnostics are specified below. The verification status records whether this program has been run.

    Source evidence

    Corrected program

    Link
    example.tpzCorrected program
    1. let value = 1
    Expected outputexit 0
    $ topaz check example.tpz · target product 5.21.3
    Expected result

    Expected result

    Checking accepts the program. Exit code 0.

    This program applies the repair described above. The verification status records whether it has been run.

    Source evidence

    Menu

    Download