MCPcopy Index your code
hub / github.com/microsoft/typescript-go / parseParametersWorker

Method parseParametersWorker

internal/parser/parser.go:3287–3314  ·  view source on GitHub ↗
(flags ParseFlags, allowAmbiguity bool)

Source from the content-addressed store, hash-verified

3285}
3286
3287func (p *Parser) parseParametersWorker(flags ParseFlags, allowAmbiguity bool) *ast.NodeList {
3288 // FormalParameters [Yield,Await]: (modified)
3289 // [empty]
3290 // FormalParameterList[?Yield,Await]
3291 //
3292 // FormalParameter[Yield,Await]: (modified)
3293 // BindingElement[?Yield,Await]
3294 //
3295 // BindingElement [Yield,Await]: (modified)
3296 // SingleNameBinding[?Yield,?Await]
3297 // BindingPattern[?Yield,?Await]Initializer [In, ?Yield,?Await] opt
3298 //
3299 // SingleNameBinding [Yield,Await]:
3300 // BindingIdentifier[?Yield,?Await]Initializer [In, ?Yield,?Await] opt
3301 inAwaitContext := p.contextFlags&ast.NodeFlagsAwaitContext != 0
3302 saveContextFlags := p.contextFlags
3303 p.setContextFlags(ast.NodeFlagsYieldContext, flags&ParseFlagsYield != 0)
3304 p.setContextFlags(ast.NodeFlagsAwaitContext, flags&ParseFlagsAwait != 0)
3305 parameters := p.parseDelimitedList(PCParameters, func(p *Parser) *ast.Node {
3306 parameter := p.parseParameterEx(inAwaitContext, allowAmbiguity)
3307 if parameter != nil && flags&ParseFlagsType == 0 {
3308 p.checkJSSyntax(parameter)
3309 }
3310 return parameter
3311 })
3312 p.contextFlags = saveContextFlags
3313 return parameters
3314}
3315
3316func (p *Parser) parseParameter() *ast.Node {
3317 return p.parseParameterEx(false /*inOuterAwaitContext*/, true /*allowAmbiguity*/)

Calls 4

setContextFlagsMethod · 0.95
parseDelimitedListMethod · 0.95
parseParameterExMethod · 0.95
checkJSSyntaxMethod · 0.95

Tested by

no test coverage detected