Lines Matching defs:lhsExpression

694 void ParserImpl::ValidateParenthesizedExpression(ir::Expression *lhsExpression)
696 switch (lhsExpression->Type()) {
698 if (lhsExpression->AsIdentifier()->TypeAnnotation() != nullptr) {
707 if (lhsExpression->AsArrayExpression()->TypeAnnotation() != nullptr) {
710 auto info = lhsExpression->AsArrayExpression()->ValidateExpression();
717 if (lhsExpression->AsObjectExpression()->TypeAnnotation() != nullptr) {
720 auto info = lhsExpression->AsObjectExpression()->ValidateExpression();
727 if (lhsExpression->AsAssignmentExpression()->ConvertibleToAssignmentPattern(false)) {
741 ir::Expression *ParserImpl::ParseAssignmentExpression(ir::Expression *lhsExpression, ExpressionParseFlags flags)
743 CHECK_NOT_NULL(lhsExpression);
745 if (lhsExpression->IsGrouped() && tokenType != lexer::TokenType::PUNCTUATOR_ARROW) {
746 if (lhsExpression->IsSequenceExpression()) {
747 for (auto *seq : lhsExpression->AsSequenceExpression()->Sequence()) {
751 ValidateParenthesizedExpression(lhsExpression);
767 auto *conditionalExpr = AllocNode<ir::ConditionalExpression>(lhsExpression, consequent, alternate);
768 conditionalExpr->SetRange({lhsExpression->Start(), alternate->End()});
776 return ParseArrowFunctionExpression(lhsExpression, nullptr, nullptr, false);
809 ir::Expression *binaryExpression = ParseBinaryExpression(lhsExpression);
814 ValidateAssignmentTarget(flags, lhsExpression);
820 AllocNode<ir::AssignmentExpression>(lhsExpression, assignmentExpression, tokenType);
822 binaryAssignmentExpression->SetRange({lhsExpression->Start(), assignmentExpression->End()});
840 ValidateLvalueAssignmentTarget(lhsExpression);
846 AllocNode<ir::AssignmentExpression>(lhsExpression, assignmentExpression, tokenType);
848 binaryAssignmentExpression->SetRange({lhsExpression->Start(), assignmentExpression->End()});
855 ir::Expression *asExpression = ParseTsAsExpression(lhsExpression, flags);
859 ir::Expression *satisfiesExpression = ParseTsSatisfiesExpression(lhsExpression);
868 return lhsExpression;