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

Method _parseChainAssignments

server/src/parser/parser.ts:2142–2168  ·  view source on GitHub ↗
(leftExpr: ExpressionNode)

Source from the content-addressed store, hash-verified

2140 }
2141
2142 private _parseChainAssignments(leftExpr: ExpressionNode): ExpressionNode {
2143 // Is the left side of the assignment assignable?
2144 const assignError = leftExpr.getAssignmentError();
2145 if (assignError) {
2146 this._addError(assignError, leftExpr);
2147 }
2148
2149 let rightExpr: ExpressionNode | undefined;
2150 rightExpr = this._tryParseYieldExpression();
2151 if (!rightExpr) {
2152 rightExpr = this._parseTestListAsExpression('Expected expression to the right of "="');
2153 }
2154
2155 if (rightExpr instanceof ErrorExpressionNode) {
2156 return rightExpr;
2157 }
2158
2159 // Recurse until we've consumed the entire chain.
2160 if (this._consumeTokenIfOperator(OperatorType.Assign)) {
2161 rightExpr = this._parseChainAssignments(rightExpr);
2162 if (rightExpr instanceof ErrorExpressionNode) {
2163 return rightExpr;
2164 }
2165 }
2166
2167 return new AssignmentNode(leftExpr, rightExpr);
2168 }
2169
2170 private _parseTypeAnnotation(node: ExpressionNode): TypeAnnotationExpression {
2171 let rawExpression = node;

Callers 1

Calls 5

_addErrorMethod · 0.95
getAssignmentErrorMethod · 0.45

Tested by

no test coverage detected