Lines Matching full:previous

67   if (Left->Previous && Left->Previous->is(tok::greater) &&
68 Left->Previous->MatchingParen &&
69 Left->Previous->MatchingParen->is(TT_TemplateOpener)) {
70 Left = Left->Previous->MatchingParen;
74 return Left->Previous && Left->Previous->is(tok::r_square) &&
75 Left->Previous->MatchingParen &&
76 Left->Previous->MatchingParen->is(TT_LambdaLSquare);
91 if (Tok.Previous && Tok.Previous->is(tok::at))
152 if (!CurrentToken || !CurrentToken->Previous)
154 if (NonTemplateLess.count(CurrentToken->Previous) > 0)
157 if (const auto &Previous = *CurrentToken->Previous; // The '<'.
158 Previous.Previous) {
159 if (Previous.Previous->Tok.isLiteral())
161 if (Previous.Previous->is(tok::r_brace))
163 if (Previous.Previous->is(tok::r_paren) && Contexts.size() > 1 &&
164 (!Previous.Previous->MatchingParen ||
165 Previous.Previous->MatchingParen->isNot(
169 if (Previous.Previous->is(tok::kw_operator) &&
175 FormatToken *Left = CurrentToken->Previous;
180 const auto *BeforeLess = Left->Previous;
243 const auto &Prev = *CurrentToken->Previous;
260 if (FormatToken *Previous = CurrentToken->getPreviousNonComment()) {
263 Previous->isNot(tok::colon))) {
264 Previous->setType(TT_SelectorName);
310 assert(CurrentToken->Previous && "Unknown previous token");
311 FormatToken &OpeningParen = *CurrentToken->Previous;
321 if (OpeningParen.Previous &&
322 OpeningParen.Previous->is(TT_UntouchableMacroFunc)) {
329 if (FormatToken *MaybeSel = OpeningParen.Previous) {
332 MaybeSel->Previous && MaybeSel->Previous->is(tok::at)) {
339 // Find the previous kw_operator token.
342 Prev = Prev->Previous;
350 Prev->Previous && Prev->Previous->isOneOf(tok::period, tok::arrow);
362 } else if (OpeningParen.Previous &&
363 (OpeningParen.Previous->isOneOf(
367 OpeningParen.Previous->isIf())) {
370 } else if (Style.isJavaScript() && OpeningParen.Previous &&
371 (OpeningParen.Previous->is(Keywords.kw_function) ||
372 (OpeningParen.Previous->endsSequence(tok::identifier,
376 } else if (Style.isJavaScript() && OpeningParen.Previous &&
377 OpeningParen.Previous->is(TT_JsTypeColon)) {
385 } else if (OpeningParen.Previous &&
386 OpeningParen.Previous->is(tok::kw__Generic)) {
390 (!OpeningParen.Previous ||
391 OpeningParen.Previous->isNot(tok::identifier))) {
396 } else if (OpeningParen.Previous &&
397 OpeningParen.Previous->is(TT_ForEachMacro)) {
401 } else if (OpeningParen.Previous && OpeningParen.Previous->MatchingParen &&
402 OpeningParen.Previous->MatchingParen->isOneOf(
407 OpeningParen.Previous &&
408 OpeningParen.Previous->isOneOf(tok::kw_for, tok::kw_catch);
413 if (FormatToken *Prev = OpeningParen.Previous) {
434 // Infer the role of the l_paren based on the previous token if we haven't
470 OpeningParen.Previous && OpeningParen.Previous->is(tok::kw_for);
491 if (CurrentToken->Previous->is(TT_PointerOrReference) &&
492 CurrentToken->Previous->Previous->isOneOf(tok::l_paren,
498 if (CurrentToken->Previous->is(TT_BinaryOperator))
514 OpeningParen.Previous && OpeningParen.Previous->is(tok::l_paren)) {
537 if (OpeningParen.Previous &&
538 OpeningParen.Previous->is(TT_JavaAnnotation)) {
541 if (OpeningParen.Previous &&
542 OpeningParen.Previous->is(TT_LeadingJavaAnnotation)) {
545 if (OpeningParen.Previous &&
546 OpeningParen.Previous->is(TT_AttributeSquare)) {
573 if ((CurrentToken->Previous->isOneOf(tok::kw_const, tok::kw_auto) ||
574 CurrentToken->Previous->isTypeName(LangOpts)) &&
626 if (Tok.Previous && Tok.Previous->is(tok::identifier))
630 if (Tok.Previous && Tok.Previous->is(tok::r_square)) {
631 auto *MatchingParen = Tok.Previous->MatchingParen;
680 FormatToken *Left = CurrentToken->Previous;
728 if (!IsInnerSquare && Left->Previous)
729 Left->Previous->EndsCppAttributeGroup = false;
811 (CurrentToken->Previous &&
812 CurrentToken->Previous->Previous == Left)) &&
821 if (StartsObjCMethodExpr && CurrentToken->Previous != Left) {
825 if (!ColonFound && CurrentToken->Previous &&
826 CurrentToken->Previous->is(TT_Unknown) &&
827 canBeObjCSelectorComponent(*CurrentToken->Previous)) {
828 CurrentToken->Previous->setType(TT_SelectorName);
848 FormatToken *Previous = CurrentToken->getPreviousNonComment();
849 if (Previous && Previous->is(TT_SelectorName)) {
850 Previous->ObjCSelectorNameParts = 1;
851 Contexts.back().FirstObjCSelectorName = Previous;
1041 CurrentToken->Previous->setType(TT_TableGenDAGArgOperatorToBreak);
1169 assert(CurrentToken->Previous);
1170 FormatToken &OpeningBrace = *CurrentToken->Previous;
1182 if (Style.isJavaScript() && OpeningBrace.Previous &&
1183 OpeningBrace.Previous->is(TT_JsTypeColon)) {
1216 FormatToken *Previous = CurrentToken->getPreviousNonComment();
1217 if (Previous->is(TT_JsTypeOptionalQuestion))
1218 Previous = Previous->getPreviousNonComment();
1223 if (Previous->Tok.getIdentifierInfo() ||
1224 Previous->is(tok::string_literal)) {
1225 Previous->setType(TT_SelectorName);
1289 CurrentToken->Previous->ClosesTemplateDeclaration = true;
1316 if (!Tok->Previous && Line.MustBeDeclaration)
1320 if (!Tok->Previous)
1353 if (Keywords.isVerilogEnd(*Tok->Previous) ||
1354 Keywords.isVerilogBegin(*Tok->Previous)) {
1379 if (FormatToken *Previous = Tok->getPreviousNonComment())
1380 Previous->setType(TT_SelectorName);
1385 const FormatToken *BeforePrevious = Tok->Previous->Previous;
1390 Tok->Previous->is(tok::identifier) && Tok->Previous->is(TT_Unknown);
1399 Tok->Previous->setType(TT_SelectorName);
1401 Contexts.back().FirstObjCSelectorName = Tok->Previous;
1402 } else if (Tok->Previous->ColumnWidth >
1405 Tok->Previous->ColumnWidth;
1407 Tok->Previous->ParameterIndex =
1438 } else if (canBeObjCSelectorComponent(*Tok->Previous) && Tok->Next &&
1478 if ((Tok->Previous && Tok->Previous->is(tok::period)) ||
1500 if (Tok->Previous && Tok->Previous->is(tok::r_paren) &&
1501 Tok->Previous->MatchingParen &&
1502 Tok->Previous->MatchingParen->is(TT_OverloadedOperatorLParen)) {
1503 Tok->Previous->setType(TT_OverloadedOperator);
1504 Tok->Previous->MatchingParen->setType(TT_OverloadedOperator);
1560 if (const auto *Previous = Tok->Previous;
1561 !Previous ||
1562 (!Previous->isAttribute() &&
1563 !Previous->isOneOf(TT_RequiresClause, TT_LeadingJavaAnnotation))) {
1577 FormatToken *Previous = Tok->getPreviousNonComment();
1578 if (Previous && Previous->isNot(TT_DictLiteral))
1579 Previous->setType(TT_SelectorName);
1594 (Style.Language == FormatStyle::LK_Proto && Tok->Previous &&
1595 Tok->Previous->isOneOf(TT_SelectorName, TT_DictLiteral))) {
1597 FormatToken *Previous = Tok->getPreviousNonComment();
1598 if (Previous && Previous->isNot(TT_DictLiteral))
1599 Previous->setType(TT_SelectorName);
1618 if (Tok->Previous)
1624 if (Tok->Previous && Tok->Previous->is(TT_TemplateCloser))
1643 auto Previous = CurrentToken->getPreviousNonComment();
1644 assert(Previous);
1645 if (CurrentToken->is(tok::comma) && Previous->isNot(tok::kw_operator))
1647 if (Previous->isOneOf(TT_BinaryOperator, TT_UnaryOperator, tok::comma,
1650 Previous->TokenText.starts_with("\"\"")) {
1651 Previous->setType(TT_OverloadedOperator);
1658 if (CurrentToken && CurrentToken->Previous->is(TT_BinaryOperator))
1659 CurrentToken->Previous->setType(TT_OverloadedOperator);
1776 if (Tok->isNot(TT_LambdaArrow) && Tok->Previous &&
1777 Tok->Previous->is(tok::kw_noexcept)) {
1857 if (IsMarkOrRegion || CurrentToken->Previous->is(TT_BinaryOperator))
2177 assert(Current.Previous);
2178 if (Current.Previous->is(tok::kw_operator)) {
2194 assert(Current.Previous->Previous);
2195 return !Current.Previous->Previous->isOneOf(tok::kw_typename,
2223 return !Current.Previous || Current.Previous->isNot(tok::kw_operator);
2229 for (FormatToken *Previous = Current.Previous;
2230 Previous && Previous->Previous &&
2231 !Previous->Previous->isOneOf(tok::comma, tok::semi);
2232 Previous = Previous->Previous) {
2233 if (Previous->isOneOf(tok::r_square, tok::r_paren, tok::greater)) {
2234 Previous = Previous->MatchingParen;
2235 if (!Previous)
2238 if (Previous->opensScope())
2240 if (Previous->isOneOf(TT_BinaryOperator, TT_UnaryOperator) &&
2241 Previous->isPointerOrReference() && Previous->Previous &&
2242 Previous->Previous->isNot(tok::equal)) {
2243 Previous->setType(TT_PointerOrReference);
2248 (!Current.Previous ||
2249 Current.Previous->isNot(tok::kw_operator))) {
2257 } else if (Current.Previous &&
2258 Current.Previous->is(TT_CtorInitializerColon)) {
2261 } else if (Current.Previous && Current.Previous->is(TT_InheritanceColon)) {
2264 for (FormatToken *Previous = Current.Previous;
2265 Previous && Previous->isOneOf(tok::star, tok::amp);
2266 Previous = Previous->Previous) {
2267 Previous->setType(TT_PointerOrReference);
2276 (Current.is(tok::exclaim) && Current.Previous &&
2277 Current.Previous->isNot(tok::kw_operator))) {
2302 if (Current.Previous && Current.Previous->is(tok::r_paren) &&
2327 Current.Previous->MatchingParen) {
2331 Current.Previous->MatchingParen->Previous;
2348 if (Current.Previous) {
2352 *Current.Previous, /* AcceptIdentifierName= */ true)
2353 : Current.Previous->is(tok::identifier);
2355 Current.Previous->isOneOf(
2359 Current.Previous->Tok.isLiteral()) {
2396 !Current.Previous->isOneOf(tok::kw_operator, tok::identifier)) {
2399 } else if (Current.is(tok::arrow) && Current.Previous &&
2400 Current.Previous->is(tok::r_brace)) {
2434 (!Current.Previous || Current.Previous->isNot(tok::l_square)) &&
2483 if (FormatToken *BeforeParen = Current.MatchingParen->Previous;
2487 (!BeforeParen->Previous ||
2488 BeforeParen->Previous->ClosesTemplateDeclaration ||
2489 BeforeParen->Previous->ClosesRequiresClause)) {
2515 } else if (Style.Language == FormatStyle::LK_Java && Current.Previous &&
2516 Current.Previous->isOneOf(TT_JavaAnnotation,
2518 Current.setType(Current.Previous->getType());
2523 Current.Previous && Current.Previous->is(TT_CastRParen) &&
2524 Current.Previous->MatchingParen &&
2525 Current.Previous->MatchingParen->Previous &&
2526 Current.Previous->MatchingParen->Previous->is(
2534 Current.Previous &&
2535 !Current.Previous->isOneOf(tok::equal, tok::at,
2544 Current.Previous) {
2545 if (Current.Previous->is(tok::at) &&
2547 const FormatToken &AtToken = *Current.Previous;
2548 const FormatToken *Previous = AtToken.getPreviousNonComment();
2549 if (!Previous || Previous->is(TT_LeadingJavaAnnotation))
2553 } else if (Current.Previous->is(tok::period) &&
2554 Current.Previous->isOneOf(TT_JavaAnnotation,
2556 Current.setType(Current.Previous->getType());
2571 if (Tok.isNot(tok::identifier) || !Tok.Previous)
2583 if (Tok.Previous->isOneOf(TT_LeadingJavaAnnotation, Keywords.kw_instanceof,
2587 if (Style.isJavaScript() && Tok.Previous->is(Keywords.kw_in))
2614 PreviousNotConst->Previous &&
2615 PreviousNotConst->Previous->is(tok::hash);
2619 PreviousNotConst->MatchingParen->Previous &&
2620 PreviousNotConst->MatchingParen->Previous->isNot(tok::period) &&
2621 PreviousNotConst->MatchingParen->Previous->isNot(tok::kw_template);
2683 if (!Tok.MatchingParen || !Tok.Previous)
2691 const auto *BeforeRParen = Tok.Previous;
2708 !LeftOfParens->MatchingParen->Previous) {
2711 LeftOfParens = LeftOfParens->MatchingParen->Previous;
2736 if (LeftOfParens->Tok.getIdentifierInfo() && LeftOfParens->Previous &&
2737 LeftOfParens->Previous->is(tok::kw_operator)) {
2801 if (const auto *Tok = T->MatchingParen->Previous;
2803 T = Tok->Previous;
2808 if (T->MatchingParen && T->MatchingParen->Previous) {
2809 T = T->MatchingParen->Previous;
2813 T = T->Previous;
2847 if (AfterRParen->is(tok::l_paren) && BeforeRParen->Previous) {
2849 BeforeRParen->Previous->is(tok::l_paren)) {
2881 for (auto *Prev = BeforeRParen; Prev != LParen; Prev = Prev->Previous) {
3171 // type of the previous one. For example,
3252 (Start->Previous &&
3253 Start->Previous->isOneOf(TT_RequiresClause,
3257 while (!Ret->ClosesRequiresClause && Ret->Previous)
3258 Ret = Ret->Previous;
3497 // Group variables of the previous type.
3500 addFakeParenthesis(FirstOfType, prec::Comma, PreviousComma->Previous);
3634 const auto *Prev = Tok->Previous;
3637 Prev = Prev->Previous;
3642 assert(Prev->Previous);
3643 return Prev->Previous->TokenText == Tok->TokenText;
3695 assert(Current.Previous);
3703 const auto &Previous = *Current.Previous;
3705 if (const auto *PrevPrev = Previous.Previous;
3751 if (Previous.Tok.getIdentifierInfo() &&
3752 !Previous.isOneOf(tok::kw_return, tok::kw_co_return)) {
3755 if (Previous.is(tok::r_paren) && Previous.is(TT_TypeDeclarationParen)) {
3756 assert(Previous.MatchingParen);
3757 assert(Previous.MatchingParen->is(tok::l_paren));
3758 assert(Previous.MatchingParen->is(TT_TypeDeclarationParen));
3761 if (!Previous.isPointerOrReference() && Previous.isNot(TT_TemplateCloser))
3888 if (Tok->Previous->EndsCppAttributeGroup)
3909 auto *Tok = Line.Last->Previous;
3911 Tok = Tok->Previous;
3974 const FormatToken *Prev = Current->Previous;
3990 // to the previous line in:
3995 for (FormatToken *Parameter = Current->Previous; Parameter;
3996 Parameter = Parameter->Previous) {
3999 if (Parameter->Previous && Parameter->Previous->is(tok::comma)) {
4000 if (Parameter->Previous->isNot(TT_CtorInitializerComma) &&
4098 Current = Current->Previous;
4134 CurrentToken = CurrentToken->Previous;
4144 const FormatToken &Left = *Tok.Previous;
4242 return !Right.NextOperator || !Right.NextOperator->Previous->closesScope()
4276 if (Line.Type == LT_ObjCDecl && Left.is(tok::l_paren) && Left.Previous &&
4277 Left.Previous->isOneOf(tok::identifier, tok::greater)) {
4287 if (Left.is(tok::l_paren) && Left.Previous &&
4288 (Left.Previous->isOneOf(tok::kw_for, tok::kw__Generic) ||
4289 Left.Previous->isIf())) {
4316 if (Left.isOneOf(tok::plus, tok::comma) && Left.Previous &&
4317 Left.Previous->isLabelString() &&
4404 if (InnerLParen && InnerLParen->Previous == Right.MatchingParen) {
4418 if (LeftParen->Previous && isKeywordWithCondition(*LeftParen->Previous))
4434 const auto *BeforeLeft = Left.Previous;
4503 // Add a space if the previous token is a pointer qualifier or the closing
4606 const FormatToken *Previous = &Left;
4607 while (Previous && Previous->isNot(tok::kw_operator)) {
4608 if (Previous->is(tok::identifier) || Previous->isTypeName(LangOpts)) {
4609 Previous = Previous->getPreviousNonComment();
4612 if (Previous->is(TT_TemplateCloser) && Previous->MatchingParen) {
4613 Previous = Previous->MatchingParen->getPreviousNonComment();
4616 if (Previous->is(tok::coloncolon)) {
4617 Previous = Previous->getPreviousNonComment();
4634 if (Previous) {
4635 if (Previous->endsSequence(tok::kw_operator))
4637 if (Previous->is(tok::kw_const) || Previous->is(tok::kw_volatile)) {
4770 Left.MatchingParen->Previous &&
4771 Left.MatchingParen->Previous->is(tok::kw_delete)) {
4813 Left.MatchingParen->Previous &&
4814 (Left.MatchingParen->Previous->is(tok::period) ||
4815 Left.MatchingParen->Previous->is(tok::coloncolon))) {
4846 const FormatToken &Left = *Right.Previous;
5027 if (Right.is(tok::l_paren) && Left.is(Keywords.kw_await) && Left.Previous &&
5028 Left.Previous->is(tok::kw_for)) {
5065 if (Left.Previous && Left.Previous->is(tok::period) &&
5083 (Left.is(Keywords.kw_of) && Left.Previous &&
5084 (Left.Previous->is(tok::identifier) ||
5085 Left.Previous->isOneOf(tok::r_square, tok::r_brace)))) &&
5086 (!Left.Previous || Left.Previous->isNot(tok::period))) {
5089 if (Left.isOneOf(tok::kw_for, Keywords.kw_as) && Left.Previous &&
5090 Left.Previous->is(tok::period) && Right.is(tok::l_paren)) {
5097 if (Left.is(tok::kw_default) && Left.Previous &&
5098 Left.Previous->is(tok::kw_export)) {
5199 // previous rule.
5465 const FormatToken &Left = *Right.Previous;
5475 const auto *BeforeLeft = Left.Previous;
5649 BeforeClosingBrace = Left.MatchingParen->Previous;
5854 // We enforce this by breaking before a submessage field that has previous
5927 const FormatToken &Left = *Right.Previous;
6190 if (Left.is(tok::l_paren) && Left.Previous &&
6191 (Left.Previous->isOneOf(TT_BinaryOperator, TT_CastRParen))) {
6222 const FormatToken *Previous = Right.MatchingParen->Previous;
6223 return !(Previous && (Previous->is(tok::kw_for) || Previous->isIf()));