MCPcopy Create free account
hub / github.com/microsoft/typescript-go / parseToplevelStatement

Method parseToplevelStatement

internal/parser/parser.go:501–516  ·  view source on GitHub ↗
(i int)

Source from the content-addressed store, hash-verified

499}
500
501func (p *Parser) parseToplevelStatement(i int) *ast.Node {
502 p.statementHasAwaitIdentifier = false
503 statement := p.parseStatement()
504 // Reparsed nodes (e.g. JSDoc @typedef) produced while parsing this statement are inserted
505 // into the statement list before this statement, so account for them when recording the
506 // statement's index for possibleAwaitSpans.
507 i += len(p.reparseList)
508 if p.statementHasAwaitIdentifier && statement.Flags&ast.NodeFlagsAwaitContext == 0 {
509 if len(p.possibleAwaitSpans) == 0 || p.possibleAwaitSpans[len(p.possibleAwaitSpans)-1] != i {
510 p.possibleAwaitSpans = append(p.possibleAwaitSpans, i, i+1)
511 } else {
512 p.possibleAwaitSpans[len(p.possibleAwaitSpans)-1] = i + 1
513 }
514 }
515 return statement
516}
517
518func (p *Parser) reparseTopLevelAwait(sourceFile *ast.SourceFile) *ast.Node {
519 if len(p.possibleAwaitSpans)%2 == 1 {

Callers

nothing calls this directly

Calls 3

parseStatementMethod · 0.95
lenFunction · 0.85
appendFunction · 0.50

Tested by

no test coverage detected