Skip to content

Parser does not reject await a as any ** 1 #41755

Open
@JLHwung

Description

@JLHwung

TypeScript Version: 4.2.0-dev.20201201

Search Terms: exponentiation, await

Code

await a as any ** 1

Expected behavior: Parser should throw

An unary expression with the 'await' operator is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses.

Actual behavior: Does not throw

Playground Link: https://www.typescriptlang.org/play?ts=4.2.0-dev.20201201#code/G4QwTgBCELwQCmA9gWwJYGcCmA6MWMkAbYLACgEYBKAbgCgQMBPAOwGMIyrYA+KAdxBoALlCgYoLJhABUMiBSA

Related Issues: #40916, since in November meeting we have reached consensus that await x ** 1 is illegal and the parser already throws on await a! ** 1, I think it should either throw for await a as any ** 1, or add parenthesis in the output for await a if as any serves as an implicit parenthesis.

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugA bug in TypeScriptDomain: TransformsRelates to the public transform APIEffort: ModerateRequires experience with the TypeScript codebase, but feasible. Harder than "Effort: Casual".Help WantedYou can do this

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions