llvm-project/clang/unittests/Format
Ben Hamilton f4c2d57f76 [clang-format] Don't detect call to ObjC class method as C++11 attribute specifier
Summary:
Previously, clang-format detected something like the following as a C++11 attribute specifier.

  @[[NSArray class]]

instead of an array with an Objective-C method call inside. In general, when the attribute specifier checking runs, if it sees 2 identifiers in a row, it decides that the square brackets represent an Objective-C method call. However, here, `class` is tokenized as a keyword instead of an identifier, so this check fails.

To fix this, the attribute specifier first checks whether the first square bracket has an "@" before it. If it does, then that square bracket is not the start of a attribute specifier because it is an Objective-C array literal. (The assumption is that @[[.*]] is not valid C/C++.)

Contributed by rkgibson2.

Reviewers: benhamilton

Reviewed By: benhamilton

Subscribers: aaron.ballman, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64632

llvm-svn: 366267
2019-07-16 21:29:40 +00:00
..
CMakeLists.txt cmake: Add CLANG_LINK_CLANG_DYLIB option 2019-07-03 22:45:55 +00:00
CleanupTest.cpp [clang-format] Regroup #includes into blocks for Google style 2019-04-03 09:25:16 +00:00
FormatTest.cpp [clang-format] Don't detect call to ObjC class method as C++11 attribute specifier 2019-07-16 21:29:40 +00:00
FormatTestCSharp.cpp [clang-format] Add basic support for formatting C# files 2019-03-21 13:09:22 +00:00
FormatTestComments.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
FormatTestJS.cpp [clang-format] [JS] handle private members. 2019-03-19 12:28:41 +00:00
FormatTestJava.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
FormatTestObjC.cpp [clang-format] Refine structured binding detection 2019-03-25 17:29:16 +00:00
FormatTestProto.cpp Revert "Revert "[clang-format] Keep protobuf "package" statement on one line"" 2019-05-10 09:15:11 +00:00
FormatTestRawStrings.cpp [clang-format] Fix indent of trailing raw string param after newline 2019-04-18 17:14:05 +00:00
FormatTestSelective.cpp [clang-format] [PR25010] AllowShortIfStatementsOnASingleLine not working if an "else" statement is present 2019-03-13 08:26:39 +00:00
FormatTestTableGen.cpp [clang-format][TableGen] Don't add spaces around items in square braces. 2019-03-01 00:12:18 +00:00
FormatTestTextProto.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
FormatTestUtils.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NamespaceEndCommentsFixerTest.cpp clang-format: better handle namespace macros 2019-06-06 20:06:23 +00:00
SortImportsTestJS.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
SortImportsTestJava.cpp [clang-format] [PR41187] moves Java import statements to the wrong location if code contains statements that start with the word import 2019-03-30 13:05:40 +00:00
SortIncludesTest.cpp [clang-format] Preserve include blocks in ObjC Google style 2019-04-04 14:04:26 +00:00
UsingDeclarationsSorterTest.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00