Skip to content

Commit 4a51ebc

Browse files
authored
Completely replace JSDocNonNullableType parsing with OptionalType (#96)
1 parent 1e02881 commit 4a51ebc

File tree

1 file changed

+3
-17
lines changed

1 file changed

+3
-17
lines changed

internal/compiler/parser.go

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2233,17 +2233,13 @@ func (p *Parser) parsePostfixTypeOrHigher() *ast.Node {
22332233
typeNode := p.parseNonArrayType()
22342234
for !p.hasPrecedingLineBreak() {
22352235
switch p.token {
2236-
case ast.KindExclamationToken:
2237-
p.nextToken()
2238-
typeNode = p.factory.NewJSDocNonNullableType(typeNode)
2239-
p.finishNode(typeNode, pos)
22402236
case ast.KindQuestionToken:
2241-
// If next token is start of a type we have a conditional type
2237+
// If next token is start of a type we are in the middle of a conditional type
22422238
if p.lookAhead(p.nextIsStartOfType) {
22432239
return typeNode
22442240
}
22452241
p.nextToken()
2246-
typeNode = p.factory.NewJSDocNullableType(typeNode)
2242+
typeNode = p.factory.NewOptionalTypeNode(typeNode)
22472243
p.finishNode(typeNode, pos)
22482244
case ast.KindOpenBracketToken:
22492245
p.parseExpected(ast.KindOpenBracketToken)
@@ -3155,17 +3151,7 @@ func (p *Parser) parseTupleElementType() *ast.TypeNode {
31553151
p.finishNode(result, pos)
31563152
return result
31573153
}
3158-
typeNode := p.parseType()
3159-
if typeNode.Kind == ast.KindJSDocNullableType {
3160-
nullableType := typeNode.AsJSDocNullableType()
3161-
if typeNode.Loc.Pos() == nullableType.TypeNode.Loc.Pos() {
3162-
result := p.factory.NewOptionalTypeNode(nullableType.TypeNode)
3163-
result.Loc = typeNode.Loc
3164-
result.Flags = typeNode.Flags
3165-
return result
3166-
}
3167-
}
3168-
return typeNode
3154+
return p.parseType()
31693155
}
31703156

31713157
func (p *Parser) parseParenthesizedType() *ast.Node {

0 commit comments

Comments
 (0)