MCPcopy
hub / github.com/microsoft/pyright / _parseLambdaExpression

Method _parseLambdaExpression

server/src/parser/parser.ts:1845–1864  ·  view source on GitHub ↗
(allowConditional = true)

Source from the content-addressed store, hash-verified

1843
1844 // lambdef: 'lambda' [varargslist] ':' test
1845 private _parseLambdaExpression(allowConditional = true): LambdaNode {
1846 let labmdaToken = this._getKeywordToken(KeywordType.Lambda);
1847
1848 let argList = this._parseVarArgsList(TokenType.Colon, false);
1849
1850 if (!this._consumeTokenIfType(TokenType.Colon)) {
1851 this._addError('Expected ":"', this._peekToken());
1852 }
1853
1854 let testExpr: ExpressionNode;
1855 if (allowConditional) {
1856 testExpr = this._parseTestExpression();
1857 } else {
1858 testExpr = this._tryParseLambdaExpression(false) || this._parseOrTest();
1859 }
1860
1861 let lambdaNode = new LambdaNode(labmdaToken, testExpr);
1862 lambdaNode.parameters = argList;
1863 return lambdaNode;
1864 }
1865
1866 private _tryParseLambdaExpression(allowConditional = true): LambdaNode | undefined {
1867 if (this._peekKeywordType() !== KeywordType.Lambda) {

Callers 2

_parseTestExpressionMethod · 0.95

Calls 8

_getKeywordTokenMethod · 0.95
_parseVarArgsListMethod · 0.95
_consumeTokenIfTypeMethod · 0.95
_addErrorMethod · 0.95
_peekTokenMethod · 0.95
_parseTestExpressionMethod · 0.95
_parseOrTestMethod · 0.95

Tested by

no test coverage detected