r238907 - clang-format: [JS] Fix bug in type colon detection.
Daniel Jasper
djasper at google.com
Wed Jun 3 01:43:18 PDT 2015
Author: djasper
Date: Wed Jun 3 03:43:18 2015
New Revision: 238907
URL: http://llvm.org/viewvc/llvm-project?rev=238907&view=rev
Log:
clang-format: [JS] Fix bug in type colon detection.
Before, this couldn't be formatted at all:
class X {
subs = {
'b': {
'c': 1,
},
};
}
Modified:
cfe/trunk/lib/Format/TokenAnnotator.cpp
cfe/trunk/unittests/Format/FormatTestJS.cpp
Modified: cfe/trunk/lib/Format/TokenAnnotator.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Format/TokenAnnotator.cpp?rev=238907&r1=238906&r2=238907&view=diff
==============================================================================
--- cfe/trunk/lib/Format/TokenAnnotator.cpp (original)
+++ cfe/trunk/lib/Format/TokenAnnotator.cpp Wed Jun 3 03:43:18 2015
@@ -448,7 +448,8 @@ private:
!Line.First->isOneOf(tok::kw_enum, tok::kw_case)) ||
Contexts.back().ContextKind == tok::l_paren || // function params
Contexts.back().ContextKind == tok::l_square || // array type
- Line.MustBeDeclaration) { // method/property declaration
+ (Contexts.size() == 1 &&
+ Line.MustBeDeclaration)) { // method/property declaration
Tok->Type = TT_JsTypeColon;
break;
}
Modified: cfe/trunk/unittests/Format/FormatTestJS.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Format/FormatTestJS.cpp?rev=238907&r1=238906&r2=238907&view=diff
==============================================================================
--- cfe/trunk/unittests/Format/FormatTestJS.cpp (original)
+++ cfe/trunk/unittests/Format/FormatTestJS.cpp Wed Jun 3 03:43:18 2015
@@ -631,6 +631,15 @@ TEST_F(FormatTestJS, ClassDeclarations)
verifyFormat("class C {\n static x(): string { return 'asd'; }\n}");
verifyFormat("class C extends P implements I {}");
verifyFormat("class C extends p.P implements i.I {}");
+
+ // ':' is not a type declaration here.
+ verifyFormat("class X {\n"
+ " subs = {\n"
+ " 'b': {\n"
+ " 'c': 1,\n"
+ " },\n"
+ " };\n"
+ "}");
}
TEST_F(FormatTestJS, InterfaceDeclarations) {
More information about the cfe-commits
mailing list