Skip to content

Parsing error on action with binary boolean operator #916

Open
@hvanz

Description

@hvanz

When an action is defined using the binary disjunction operator (x or y), the parser gives en error. When it is defined using the list operator (any { ... }), it works as expected. It is the same with conjunction.

This is a minimal working example:

module disjunctionBug {
    var x: bool
    action a = x' = x
    action step = a or a // this fails
    // action step = any { a, a } // this is ok
}

which outputs the following error:

Expected [x] and [] to be the same
Trying to unify entities ['x'] and []
Trying to unify Read[v2] & Temporal[v3] and Read['x'] & Update['x']
Trying to unify (Read[v2] & Temporal[v3], Read[v4] & Temporal[v5]) => Read[v2, v4] & Temporal[v3, v5] and (Read['x'] & Update['x'], Read['x'] & Update['x']) => e1
Trying to infer effect for operator application in or(a, a)
quint(QNT000)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions