(allowConditional = true)
| 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) { |
no test coverage detected