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

    TPZ3008: Module namespace collision

    Two declarations in one module bind the same namespace name.

    Diagnostic and cause

    Link

    Module namespace collision

    Family
    topaz
    Phase
    resolve
    Code
    TPZ3008

    Cause and conditions

    Two declarations binding the same top-level name in one module produce TPZ3008.

    Response

    Rename one declaration or import alias. Check the local names introduced by selected imports as well.

    Source evidence

    Compiler phase: resolve.

    Compiler explanation: Two declarations in one module bind the same namespace name.

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

    • ⟨value⟩ is already bound at this module's top level (first binding at byte ⟨value⟩) Source

    Observed for the candidate in Topaz 5.21.3. Execution

    • error[TPZ3008]: value is already bound at this module's top level (first binding at byte 4)

    A top-level declaration or import binds a name already present in the module table. The example declares value twice.

    Rulediagnostics.tpz3008.rule

    Trigger and repair

    Two declarations binding the same top-level name in one module produce TPZ3008.

    Source evidence

    Response

    Link

    Rename one declaration or import alias. Check the local names introduced by selected imports as well.

    Reproduction and verification

    Link

    Rejected program

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

    Expected result

    Rejection during resolve. Nonzero exit.

    • TPZ3008 diagnostic-tpz3008 at example.tpz:2: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
    2. let other = 2
    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