Skip to content

Generator produces wrong code for UnaryExpression #14

@asakura

Description

@asakura
  1. Builder.binary_expression(:==, Builder.unary_expression(:!, true, Builder.literal(:x)), Builder.literal(1)))
  2. Builder.unary_expression(:!, true, Builder.binary_expression(:==, Builder.literal(:x), Builder.literal(1)))

Both variants produces absolutely same ES program: !x == 1

The second AST should produce: !(x == 1)

I can't imagine all possible argument variants, when unary_expression should wrap it in parentheses, but probably it must work in the same way for LogicalExpression too.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions