Skip to content

Commit bb76a58

Browse files
authored
Restore mistakenly removed postfix parsing code (#92)
1 parent 9a82b80 commit bb76a58

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

internal/compiler/parser.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2233,6 +2233,11 @@ func (p *Parser) parsePostfixTypeOrHigher() *ast.Node {
22332233
typeNode := p.parseNonArrayType()
22342234
for !p.hasPrecedingLineBreak() {
22352235
switch p.token {
2236+
case ast.KindQuestionToken:
2237+
// If next token is start of a type we have a conditional type
2238+
if p.lookAhead(p.nextIsStartOfType) {
2239+
return typeNode
2240+
}
22362241
case ast.KindOpenBracketToken:
22372242
p.parseExpected(ast.KindOpenBracketToken)
22382243
if p.isStartOfType(false /*isStartOfParameter*/) {
@@ -2252,6 +2257,11 @@ func (p *Parser) parsePostfixTypeOrHigher() *ast.Node {
22522257
return typeNode
22532258
}
22542259

2260+
func (p *Parser) nextIsStartOfType() bool {
2261+
p.nextToken()
2262+
return p.isStartOfType(false /*inStartOfParameter*/)
2263+
}
2264+
22552265
func (p *Parser) parseNonArrayType() *ast.Node {
22562266
switch p.token {
22572267
case ast.KindAnyKeyword, ast.KindUnknownKeyword, ast.KindStringKeyword, ast.KindNumberKeyword, ast.KindBigIntKeyword,

0 commit comments

Comments
 (0)