From cb51cf409b45ddaa1bd16b1d88185b918c02bbdd Mon Sep 17 00:00:00 2001 From: Daniel Jasper Date: Thu, 16 Jan 2014 09:11:55 +0000 Subject: clang-format: Enable formatting of lambdas with explicit return type. So clang-format can now format: int c = []()->int { return 2; }(); int c = []()->vector { return { 2 }; }(); llvm-svn: 199368 --- clang/lib/Format/TokenAnnotator.cpp | 34 ++-------------------------------- 1 file changed, 2 insertions(+), 32 deletions(-) (limited to 'clang/lib/Format/TokenAnnotator.cpp') diff --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp index be9eabeec7f..6db3f278d49 100644 --- a/clang/lib/Format/TokenAnnotator.cpp +++ b/clang/lib/Format/TokenAnnotator.cpp @@ -697,7 +697,7 @@ private: bool ParensAreType = !Current.Previous || Current.Previous->Type == TT_PointerOrReference || Current.Previous->Type == TT_TemplateCloser || - isSimpleTypeSpecifier(*Current.Previous); + Current.Previous->isSimpleTypeSpecifier(); bool ParensCouldEndDecl = Current.Next && Current.Next->isOneOf(tok::equal, tok::semi, tok::l_brace); @@ -778,7 +778,7 @@ private: return (!IsPPKeyword && PreviousNotConst->is(tok::identifier)) || PreviousNotConst->Type == TT_PointerOrReference || - isSimpleTypeSpecifier(*PreviousNotConst); + PreviousNotConst->isSimpleTypeSpecifier(); } /// \brief Return the type of the given token assuming it is * or &. @@ -853,36 +853,6 @@ private: return TT_UnaryOperator; } - // FIXME: This is copy&pasted from Sema. Put it in a common place and remove - // duplication. - /// \brief Determine whether the token kind starts a simple-type-specifier. - bool isSimpleTypeSpecifier(const FormatToken &Tok) const { - switch (Tok.Tok.getKind()) { - case tok::kw_short: - case tok::kw_long: - case tok::kw___int64: - case tok::kw___int128: - case tok::kw_signed: - case tok::kw_unsigned: - case tok::kw_void: - case tok::kw_char: - case tok::kw_int: - case tok::kw_half: - case tok::kw_float: - case tok::kw_double: - case tok::kw_wchar_t: - case tok::kw_bool: - case tok::kw___underlying_type: - case tok::annot_typename: - case tok::kw_char16_t: - case tok::kw_char32_t: - case tok::kw_typeof: - case tok::kw_decltype: - return true; - default: - return false; - } - } SmallVector Contexts; -- cgit v1.2.3