Lines Matching defs:Style
21 EXPECT_NE(VALUE, Style.FIELD) << "Initial value already the same!"; \
22 EXPECT_EQ(0, parseConfiguration(TEXT, &Style).value()); \
23 EXPECT_EQ(VALUE, Style.FIELD) << "Unexpected value after parsing!"
26 EXPECT_NE(0, parseConfiguration(TEXT, &Style).value()); \
27 EXPECT_EQ(VALUE, Style.FIELD) << "Unexpected value after parsing!"
32 const FormatStyle &Style = getLLVMStyle()) {
33 return TestLexer(Allocator, Buffers, Style).annotate(Code);
56 FormatStyle Style = {};
57 Style.Language = FormatStyle::LK_Cpp;
65 FormatStyle Style = {};
66 Style.Language = FormatStyle::LK_Cpp;
74 FormatStyle Style = {};
75 Style.Language = FormatStyle::LK_Cpp;
86 FormatStyle Style = {};
87 Style.Language = FormatStyle::LK_Cpp;
93 FormatStyle Style = {};
94 Style.Language = FormatStyle::LK_Cpp;
100 FormatStyle Style = {};
101 Style.Language = FormatStyle::LK_Cpp;
107 FormatStyle Style = {};
108 Style.Language = FormatStyle::LK_Cpp;
114 FormatStyle Style = getLLVMStyle();
115 Style.QualifierAlignment = FormatStyle::QAS_Left;
116 Style.QualifierOrder = {"friend", "inline", "constexpr", "static",
119 verifyFormat("const volatile int a;", Style);
120 verifyFormat("const volatile int a;", "volatile const int a;", Style);
121 verifyFormat("const volatile int a;", "int const volatile a;", Style);
122 verifyFormat("const volatile int a;", "int volatile const a;", Style);
123 verifyFormat("const volatile int a;", "const int volatile a;", Style);
126 Style);
128 "const static inline int volatile a;", Style);
130 verifyFormat("constexpr static int a;", "static constexpr int a;", Style);
131 verifyFormat("constexpr static int A;", "static constexpr int A;", Style);
132 verifyFormat("constexpr static int Bar;", "static constexpr int Bar;", Style);
134 Style);
135 verifyFormat("const const int a;", "const int const a;", Style);
140 Style);
144 Style);
148 FormatStyle Style = getLLVMStyle();
151 verifyFormat("const int a;", Style);
152 verifyFormat("const int *a;", Style);
153 verifyFormat("const int &a;", Style);
154 verifyFormat("const int &&a;", Style);
155 verifyFormat("int const b;", Style);
156 verifyFormat("int const *b;", Style);
157 verifyFormat("int const &b;", Style);
158 verifyFormat("int const &&b;", Style);
159 verifyFormat("int const *const b;", Style);
160 verifyFormat("int *const c;", Style);
162 verifyFormat("const Foo a;", Style);
163 verifyFormat("const Foo *a;", Style);
164 verifyFormat("const Foo &a;", Style);
165 verifyFormat("const Foo &&a;", Style);
166 verifyFormat("Foo const b;", Style);
167 verifyFormat("Foo const *b;", Style);
168 verifyFormat("Foo const &b;", Style);
169 verifyFormat("Foo const &&b;", Style);
170 verifyFormat("Foo const *const b;", Style);
172 verifyFormat("LLVM_NODISCARD const int &Foo();", Style);
173 verifyFormat("LLVM_NODISCARD int const &Foo();", Style);
175 verifyFormat("volatile const int *restrict;", Style);
176 verifyFormat("const volatile int *restrict;", Style);
177 verifyFormat("const int volatile *restrict;", Style);
181 FormatStyle Style = getLLVMStyle();
182 Style.QualifierAlignment = FormatStyle::QAS_Right;
183 Style.QualifierOrder = {"type", "const", "volatile"};
185 verifyFormat("int const a;", Style);
186 verifyFormat("int const *a;", Style);
187 verifyFormat("int const &a;", Style);
188 verifyFormat("int const &&a;", Style);
189 verifyFormat("int const b;", Style);
190 verifyFormat("int const *b;", Style);
191 verifyFormat("int const &b;", Style);
192 verifyFormat("int const &&b;", Style);
193 verifyFormat("int const *const b;", Style);
194 verifyFormat("int *const c;", Style);
196 verifyFormat("Foo const a;", Style);
197 verifyFormat("Foo const *a;", Style);
198 verifyFormat("Foo const &a;", Style);
199 verifyFormat("Foo const &&a;", Style);
200 verifyFormat("Foo const b;", Style);
201 verifyFormat("Foo const *b;", Style);
202 verifyFormat("Foo const &b;", Style);
203 verifyFormat("Foo const &&b;", Style);
204 verifyFormat("Foo const *const b;", Style);
205 verifyFormat("Foo *const b;", Style);
206 verifyFormat("Foo const *const b;", Style);
207 verifyFormat("auto const v = get_value();", Style);
208 verifyFormat("long long const &a;", Style);
209 verifyFormat("unsigned char const *a;", Style);
211 Style);
213 verifyFormat("LLVM_NODISCARD int const &Foo();", Style);
215 Style);
216 verifyFormat("void foo() const override;", Style);
217 verifyFormat("void foo() const override LLVM_READONLY;", Style);
218 verifyFormat("void foo() const final;", Style);
219 verifyFormat("void foo() const final LLVM_READONLY;", Style);
220 verifyFormat("void foo() const LLVM_READONLY;", Style);
221 verifyFormat("void foo() const volatile override;", Style);
222 verifyFormat("void foo() const volatile override LLVM_READONLY;", Style);
223 verifyFormat("void foo() const volatile final;", Style);
224 verifyFormat("void foo() const volatile final LLVM_READONLY;", Style);
225 verifyFormat("void foo() const volatile LLVM_READONLY;", Style);
229 Style);
233 Style);
237 Style);
239 verifyFormat("int const a;", "const int a;", Style);
240 verifyFormat("int const *a;", "const int *a;", Style);
241 verifyFormat("int const &a;", "const int &a;", Style);
242 verifyFormat("foo(int const &a)", "foo(const int &a)", Style);
243 verifyFormat("unsigned char *a;", Style);
244 verifyFormat("unsigned char const *a;", "const unsigned char *a;", Style);
246 "vector<int, const int, int &, const int &> args1", Style);
248 "const unsigned int &get_nu() const", Style);
249 verifyFormat("Foo<int> const &a", "const Foo<int> &a", Style);
251 Style);
253 Style);
261 Style);
263 verifyFormat("int const volatile;", "volatile const int;", Style);
264 verifyFormat("int const volatile;", "const volatile int;", Style);
265 verifyFormat("int const volatile;", "const int volatile;", Style);
268 Style);
270 Style);
272 Style);
275 Style);
277 Style);
279 Style);
281 Style);
283 Style);
285 verifyFormat("static int const bat;", "static const int bat;", Style);
286 verifyFormat("static int const bat;", Style);
291 Style);
293 Style);
295 Style);
297 Style);
299 Style);
301 Style);
303 verifyFormat("Foo inline static const;", "const Foo inline static;", Style);
304 verifyFormat("Foo inline static const;", "Foo const inline static;", Style);
305 verifyFormat("Foo inline static const;", "Foo inline const static;", Style);
306 verifyFormat("Foo inline static const;", Style);
310 Style);
313 Style);
314 verifyFormat("int const Foo<int>::bat = 0;", Style);
315 verifyFormat("void fn(Foo<T> const &i);", "void fn(const Foo<T> &i);", Style);
316 verifyFormat("int const Foo<int>::fn() {", Style);
317 verifyFormat("Foo<Foo<int>> const *p;", "const Foo<Foo<int>> *p;", Style);
321 Style);
323 verifyFormat("void fn(Foo<T> const &i);", "void fn(const Foo<T> &i);", Style);
324 verifyFormat("void fns(ns::S const &s);", "void fns(const ns::S &s);", Style);
326 Style);
328 Style);
330 "void fns(const ns::ns2::S &s);", Style);
332 "void fn(const ns::Foo<Bar<T>> &i);", Style);
334 "void fn(const ns::ns2::Foo<Bar<T>> &i);", Style);
336 "void fn(const ns::ns2::Foo<Bar<T, U>> &i);", Style);
339 "const LocalScope* Scope = nullptr;", Style);
341 "struct DOTGraphTraits<const Stmt *>", Style);
346 Style);
347 verifyFormat("Foo<Foo<int> const> P;", "Foo<const Foo<int>> P;", Style);
349 "Foo<const Foo<int>> P;\n#if 0\n#else\n#endif", Style);
351 verifyFormat("auto const i = 0;", "const auto i = 0;", Style);
352 verifyFormat("auto const &ir = i;", "const auto &ir = i;", Style);
353 verifyFormat("auto const *ip = &i;", "const auto *ip = &i;", Style);
356 "void f(const Concept auto &x);", Style);
358 "void f(const std::integral auto &x);", Style);
361 "auto lambda = [] { const int i = 0; };", Style);
364 "Foo<const Foo<int>> P;\n#if 0\n#else\n#endif", Style);
367 "Bar<Bar<const int> const> P;\n#if 0\n#else\n#endif", Style);
370 "Baz<const Baz<const int>> P;\n#if 0\n#else\n#endif", Style);
373 // "#if 0\nBoo<const Boo<const int>> P;\n#else\n#endif", Style);
376 "const int P;\n#if 0\n#else\n#endif", Style);
378 verifyFormat("unsigned long const a;", "const unsigned long a;", Style);
380 Style);
383 verifyFormat("Bar<std::Foo const, 32>", "Bar<const std::Foo, 32>", Style);
385 verifyFormat("Bar<std::Foo const> bar", "Bar<const std::Foo> bar", Style);
389 Style);
392 verifyFormat("void foo(const struct A a);", Style);
393 verifyFormat("void foo(const class A a);", Style);
397 verifyFormat("const struct {\n} var;", Style);
398 verifyFormat("struct {\n} const var;", Style);
399 verifyFormat("const class {\n} var;", Style);
400 verifyFormat("class {\n} const var;", Style);
404 verifyFormat("volatile const class {\n} var;", Style);
405 verifyFormat("const volatile class {\n} var;", Style);
407 verifyFormat("const static volatile class {\n} var;", Style);
409 verifyFormat("class {\n} const volatile var;", Style);
411 "class {\n} volatile const var;", Style);
414 verifyFormat("class {\n} static const volatile var;", Style);
416 "class {\n} volatile static const var;", Style);
420 "const volatile ::template Foo<T> var;", Style);
422 "const volatile typename ::template Foo<T> var;", Style);
424 "const typename Bar::template Foo<T>::T;", Style);
426 "const volatile typename Bar::template Foo<T>::T;", Style);
430 Style);
433 "const typename ::template Bar<int>;", Style);
435 verifyFormat("foo<Bar<Baz> const>();", "foo<const Bar<Baz>>();", Style);
436 verifyFormat("foo<Bar<Baz> const>();", "foo<const Bar<Baz> >();", Style);
437 verifyFormat("Bar<32, Foo<25> const>;", "Bar<32, const Foo<25>>;", Style);
438 verifyFormat("A<B<C<D> const> const>;", "A<const B<const C<D>>>;", Style);
440 Style);
443 verifyFormat("const decltype(foo)", Style);
444 verifyFormat("const typeof(foo)", Style);
445 verifyFormat("const _Atomic(foo)", Style);
448 const int ColumnLimit = Style.ColumnLimit;
449 Style.ColumnLimit = 200;
450 verifyFormat("/*c*/ Foo const *foo;", "const /*c*/ Foo *foo;", Style);
451 verifyFormat("Foo const /*c*/ *foo;", "const Foo /*c*/ *foo;", Style);
452 verifyFormat("Foo const * /*c*/ foo;", "const Foo * /*c*/ foo;", Style);
455 "const /*comment*/ std::vector<int> v;", Style);
457 "const std /*comment*/ ::vector<int> v;", Style);
459 "const std::/*comment*/ vector<int> v;", Style);
461 "const std::vector /*comment*/ <int> v;", Style);
463 "const std::vector</*comment*/ int> v;", Style);
465 "const std::vector<int /*comment*/> v;", Style);
467 "const std::vector<int> /*comment*/ v;", Style);
470 "std::vector</*comment*/ const int> v;", Style);
472 "std::vector<const /*comment*/ int> v;", Style);
474 "std::vector<const int /*comment*/> v;", Style);
476 "std::vector</*comment*/ const Foo> v;", Style);
478 "std::vector<const /*comment*/ Foo> v;", Style);
480 "std::vector<const Foo /*comment*/> v;", Style);
483 "const typename C<T>::template B<T>;", Style);
485 "const /*c*/ typename C<T>::template B<T>;", Style);
487 "const typename /*c*/ C<T>::template B<T>;", Style);
489 "const typename C /*c*/<T>::template B<T>;", Style);
491 "const typename C<T> /*c*/ ::template B<T>;", Style);
493 "const typename C<T>::/*c*/ template B<T>;", Style);
495 "const typename C<T>::template /*c*/B<T>;", Style);
497 "const typename C<T>::template B<T>/*c*/;", Style);
503 Style);
506 "const /*c*/ unsigned /*c*/ long /*c*/ a;", Style);
508 "const unsigned /*c*/ long /*c*/ long a;", Style);
511 verifyFormat("foo() /*c*/ const", Style);
512 verifyFormat("const /*c*/ struct a;", Style);
513 verifyFormat("const /*c*/ class a;", Style);
514 verifyFormat("const /*c*/ decltype(v) a;", Style);
515 verifyFormat("const /*c*/ typeof(v) a;", Style);
516 verifyFormat("const /*c*/ _Atomic(v) a;", Style);
517 verifyFormat("const decltype /*c*/ (v) a;", Style);
518 verifyFormat("const /*c*/ class {\n} volatile /*c*/ foo = {};", Style);
520 Style.ColumnLimit = ColumnLimit;
523 verifyFormat("const INTPTR a;", Style);
526 verifyFormat("int S::*a;", Style);
527 verifyFormat("int const S::*a;", "const int S::*a;", Style);
528 verifyFormat("int const S::*const a;", "const int S::* const a;", Style);
529 verifyFormat("int A::*const A::*p1;", Style);
530 verifyFormat("float (C::*p)(int);", Style);
531 verifyFormat("float (C::*const p)(int);", Style);
532 verifyFormat("float (C::*p)(int) const;", Style);
533 verifyFormat("float const (C::*p)(int);", "const float (C::*p)(int);", Style);
535 Style.BreakBeforeBraces = FormatStyle::BS_Custom;
536 Style.BraceWrapping.AfterFunction = true;
538 "auto foo() -> const T { return bar; }", Style);
542 FormatStyle Style = getLLVMStyle();
543 Style.QualifierAlignment = FormatStyle::QAS_Left;
544 Style.QualifierOrder = {"inline", "static", "const", "volatile", "type"};
546 verifyFormat("const int a;", Style);
547 verifyFormat("const int *a;", Style);
548 verifyFormat("const int &a;", Style);
549 verifyFormat("const int &&a;", Style);
550 verifyFormat("const int b;", Style);
551 verifyFormat("const int *b;", Style);
552 verifyFormat("const int &b;", Style);
553 verifyFormat("const int &&b;", Style);
554 verifyFormat("const int *const b;", Style);
555 verifyFormat("int *const c;", Style);
557 verifyFormat("const Foo a;", Style);
558 verifyFormat("const Foo *a;", Style);
559 verifyFormat("const Foo &a;", Style);
560 verifyFormat("const Foo &&a;", Style);
561 verifyFormat("const Foo b;", Style);
562 verifyFormat("const Foo *b;", Style);
563 verifyFormat("const Foo &b;", Style);
564 verifyFormat("const Foo &&b;", Style);
565 verifyFormat("const Foo *const b;", Style);
566 verifyFormat("Foo *const b;", Style);
567 verifyFormat("const Foo *const b;", Style);
569 verifyFormat("LLVM_NODISCARD const int &Foo();", Style);
571 verifyFormat("const char a[];", Style);
572 verifyFormat("const auto v = get_value();", Style);
573 verifyFormat("const long long &a;", Style);
574 verifyFormat("const unsigned char *a;", Style);
575 verifyFormat("const unsigned char *a;", "unsigned char const *a;", Style);
576 verifyFormat("const Foo<int> &a", "Foo<int> const &a", Style);
578 Style);
580 Style);
582 verifyFormat("const int a;", "int const a;", Style);
583 verifyFormat("const int *a;", "int const *a;", Style);
584 verifyFormat("const int &a;", "int const &a;", Style);
585 verifyFormat("foo(const int &a)", "foo(int const &a)", Style);
586 verifyFormat("unsigned char *a;", Style);
588 "unsigned int const &get_nu() const", Style);
590 verifyFormat("const volatile int;", "volatile const int;", Style);
591 verifyFormat("const volatile int;", Style);
592 verifyFormat("const volatile int;", "const int volatile;", Style);
595 Style);
596 verifyFormat("const volatile int *restrict;", Style);
598 Style);
601 Style);
603 Style);
605 Style);
607 Style);
609 Style);
612 Style);
614 verifyFormat("void foo() const override;", Style);
615 verifyFormat("void foo() const override LLVM_READONLY;", Style);
616 verifyFormat("void foo() const final;", Style);
617 verifyFormat("void foo() const final LLVM_READONLY;", Style);
618 verifyFormat("void foo() const LLVM_READONLY;", Style);
622 Style);
626 Style);
628 verifyFormat("static const int bat;", Style);
629 verifyFormat("static const int bat;", "static int const bat;", Style);
631 verifyFormat("static const int Foo<int>::bat = 0;", Style);
633 "static int const Foo<int>::bat = 0;", Style);
637 verifyFormat("const int Foo<int>::bat = 0;", Style);
639 Style);
641 Style);
643 Style);
644 verifyFormat("const Foo<Foo<int>> *p;", "Foo<Foo<int>> const *p;", Style);
648 Style);
650 verifyFormat("void fn(const Foo<T> &i);", "void fn(Foo<T> const &i);", Style);
651 verifyFormat("void fns(const ns::S &s);", "void fns(ns::S const &s);", Style);
653 Style);
655 Style);
657 "void fns(ns::ns2::S const &s);", Style);
659 "void fn(ns::Foo<Bar<T>> const &i);", Style);
661 "void fn(ns::ns2::Foo<Bar<T>> const &i);", Style);
663 "void fn(ns::ns2::Foo<Bar<T, U>> const &i);", Style);
665 verifyFormat("const auto i = 0;", "auto const i = 0;", Style);
666 verifyFormat("const auto &ir = i;", "auto const &ir = i;", Style);
667 verifyFormat("const auto *ip = &i;", "auto const *ip = &i;", Style);
670 "void f(Concept auto const &x);", Style);
672 "void f(std::integral auto const &x);", Style);
675 "auto lambda = [] { int const i = 0; };", Style);
678 "Foo<Foo<int> const> P;\n#if 0\n#else\n#endif", Style);
681 "Foo<Foo<int const>> P;\n#if 0\n#else\n#endif", Style);
684 "int const P;\n#if 0\n#else\n#endif", Style);
686 verifyFormat("const unsigned long a;", "unsigned long const a;", Style);
688 Style);
691 Style);
693 verifyFormat("const std::Foo", Style);
694 verifyFormat("const std::Foo<>", Style);
695 verifyFormat("const std::Foo < int", "const std::Foo<int", Style);
696 verifyFormat("const std::Foo<int>", Style);
699 verifyFormat("Bar<const std::Foo, 32>;", "Bar<std::Foo const, 32>;", Style);
702 verifyFormat("Bar<const std::Foo> bar;", "Bar<std::Foo const> bar;", Style);
706 Style);
709 verifyFormat("void foo(struct A const a);", Style);
710 verifyFormat("void foo(class A const a);", Style);
714 verifyFormat("const struct {\n} var;", Style);
715 verifyFormat("struct {\n} const var;", Style);
716 verifyFormat("const class {\n} var;", Style);
717 verifyFormat("class {\n} const var;", Style);
721 verifyFormat("const volatile class {\n} var;", Style);
723 "volatile const class {\n} var;", Style);
726 verifyFormat("class {\n} const volatile var;", Style);
727 verifyFormat("class {\n} volatile const var;", Style);
729 verifyFormat("foo<const Bar<Baz<T>>>();", "foo<Bar<Baz<T>> const>();", Style);
731 Style);
732 verifyFormat("Bar<32, const Foo<25>>;", "Bar<32, Foo<25> const>;", Style);
733 verifyFormat("A<const B<const C<D>>>;", "A<B<C<D> const> const>;", Style);
735 Style);
738 verifyFormat("decltype(foo) const", Style);
739 verifyFormat("typeof(foo) const", Style);
740 verifyFormat("_Atomic(foo) const", Style);
744 "::template Foo<T> const volatile var;", Style);
746 "typename ::template Foo<T> const volatile var;", Style);
748 "typename Bar::template Foo<T>::T const;", Style);
750 "typename Bar::template Foo<T>::T const volatile;", Style);
754 Style);
757 "typename ::template Bar<int> const;", Style);
760 const int ColumnLimit = Style.ColumnLimit;
761 Style.ColumnLimit = 200;
762 verifyFormat("/*c*/ const Foo *foo;", "/*c*/ Foo const *foo;", Style);
763 verifyFormat("const Foo /*c*/ *foo;", "Foo const /*c*/ *foo;", Style);
764 verifyFormat("const Foo * /*c*/ foo;", "Foo const * /*c*/ foo;", Style);
767 "/*comment*/ std::vector<int> const v;", Style);
769 "std /*comment*/ ::vector<int> const v;", Style);
771 "std::/*comment*/ vector<int> const v;", Style);
773 "std::vector /*comment*/<int> const v;", Style);
775 "std::vector</*comment*/ int> const v;", Style);
777 "std::vector<int /*comment*/> const v;", Style);
779 "std::vector<int> /*comment*/ const v;", Style);
782 "std::vector</*comment*/ int const> v;", Style);
784 "std::vector<int /*comment*/ const> v;", Style);
786 "std::vector<int const /*comment*/> v;", Style);
788 "std::vector</*comment*/ Foo const> v;", Style);
790 "std::vector<Foo /*comment*/ const> v;", Style);
792 "std::vector<Foo const /*comment*/> v;", Style);
795 "typename C<T>::template B<T> const;", Style);
797 "/*c*/ typename C<T>::template B<T> const;", Style);
799 "typename /*c*/ C<T>::template B<T> const;", Style);
801 "typename C /*c*/<T>::template B<T> const;", Style);
803 "typename C<T> /*c*/ ::template B<T> const;", Style);
805 "typename C<T>::/*c*/ template B<T> const;", Style);
807 "typename C<T>::template /*c*/ B<T> const;", Style);
809 "typename C<T>::template B<T> /*c*/ const;", Style);
815 Style);
818 "unsigned /*c*/ long /*c*/ const a;", Style);
820 "unsigned /*c*/ long /*c*/ long const a;", Style);
823 verifyFormat("foo() /*c*/ const", Style);
824 verifyFormat("struct /*c*/ const a;", Style);
825 verifyFormat("class /*c*/ const a;", Style);
826 verifyFormat("decltype(v) /*c*/ const a;", Style);
827 verifyFormat("typeof(v) /*c*/ const a;", Style);
828 verifyFormat("_Atomic(v) /*c*/ const a;", Style);
829 verifyFormat("decltype /*c*/ (v) const a;", Style);
830 verifyFormat("const /*c*/ class {\n} /*c*/ volatile /*c*/ foo = {};", Style);
832 Style.ColumnLimit = ColumnLimit;
835 verifyFormat("INTPTR const a;", Style);
838 verifyFormat("int S::*a;", Style);
839 verifyFormat("const int S::*a;", "int const S::*a;", Style);
840 verifyFormat("const int S::*const a;", "int const S::*const a;", Style);
841 verifyFormat("int A::*const A::*p1;", Style);
842 verifyFormat("float (C::*p)(int);", Style);
843 verifyFormat("float (C::*const p)(int);", Style);
844 verifyFormat("float (C::*p)(int) const;", Style);
845 verifyFormat("const float (C::*p)(int);", "float const (C::*p)(int);", Style);
849 FormatStyle Style = getLLVMStyle();
850 Style.QualifierAlignment = FormatStyle::QAS_Left;
851 Style.QualifierOrder = {"inline", "static", "const", "volatile", "type"};
854 EXPECT_EQ(Style.QualifierOrder.size(), (size_t)5);
856 verifyFormat("const volatile int a;", Style);
857 verifyFormat("const volatile int a;", "volatile const int a;", Style);
858 verifyFormat("const volatile int a;", "int const volatile a;", Style);
859 verifyFormat("const volatile int a;", "int volatile const a;", Style);
860 verifyFormat("const volatile int a;", "const int volatile a;", Style);
862 verifyFormat("const volatile Foo a;", Style);
863 verifyFormat("const volatile Foo a;", "volatile const Foo a;", Style);
864 verifyFormat("const volatile Foo a;", "Foo const volatile a;", Style);
865 verifyFormat("const volatile Foo a;", "Foo volatile const a;", Style);
866 verifyFormat("const volatile Foo a;", "const Foo volatile a;", Style);
868 Style.QualifierAlignment = FormatStyle::QAS_Right;
869 Style.QualifierOrder = {"type", "const", "volatile"};
871 verifyFormat("int const volatile a;", "const volatile int a;", Style);
872 verifyFormat("int const volatile a;", "volatile const int a;", Style);
873 verifyFormat("int const volatile a;", Style);
874 verifyFormat("int const volatile a;", "int volatile const a;", Style);
875 verifyFormat("int const volatile a;", "const int volatile a;", Style);
877 verifyFormat("Foo const volatile a;", "const volatile Foo a;", Style);
878 verifyFormat("Foo const volatile a;", "volatile const Foo a;", Style);
879 verifyFormat("Foo const volatile a;", Style);
880 verifyFormat("Foo const volatile a;", "Foo volatile const a;", Style);
881 verifyFormat("Foo const volatile a;", "const Foo volatile a;", Style);
883 Style.QualifierAlignment = FormatStyle::QAS_Left;
884 Style.QualifierOrder = {"volatile", "const", "type"};
886 verifyFormat("volatile const int a;", "const volatile int a;", Style);
887 verifyFormat("volatile const int a;", Style);
888 verifyFormat("volatile const int a;", "int const volatile a;", Style);
889 verifyFormat("volatile const int a;", "int volatile const a;", Style);
890 verifyFormat("volatile const int a;", "const int volatile a;", Style);
892 verifyFormat("volatile const Foo a;", "const volatile Foo a;", Style);
893 verifyFormat("volatile const Foo a;", Style);
894 verifyFormat("volatile const Foo a;", "Foo const volatile a;", Style);
895 verifyFormat("volatile const Foo a;", "Foo volatile const a;", Style);
896 verifyFormat("volatile const Foo a;", "const Foo volatile a;", Style);
898 Style.QualifierAlignment = FormatStyle::QAS_Right;
899 Style.QualifierOrder = {"type", "volatile", "const"};
901 verifyFormat("int volatile const a;", "const volatile int a;", Style);
902 verifyFormat("int volatile const a;", "volatile const int a;", Style);
903 verifyFormat("int volatile const a;", "int const volatile a;", Style);
904 verifyFormat("int volatile const a;", Style);
905 verifyFormat("int volatile const a;", "const int volatile a;", Style);
907 verifyFormat("Foo volatile const a;", "const volatile Foo a;", Style);
908 verifyFormat("Foo volatile const a;", "volatile const Foo a;", Style);
909 verifyFormat("Foo volatile const a;", "Foo const volatile a;", Style);
910 verifyFormat("Foo volatile const a;", Style);
911 verifyFormat("Foo volatile const a;", "const Foo volatile a;", Style);
913 Style.QualifierAlignment = FormatStyle::QAS_Custom;
914 Style.QualifierOrder = {"type", "volatile", "const"};
916 verifyFormat("int volatile const a;", "const volatile int a;", Style);
917 verifyFormat("int volatile const a;", "volatile const int a;", Style);
918 verifyFormat("int volatile const a;", "int const volatile a;", Style);
919 verifyFormat("int volatile const a;", Style);
920 verifyFormat("int volatile const a;", "const int volatile a;", Style);
922 verifyFormat("Foo volatile const a;", "const volatile Foo a;", Style);
923 verifyFormat("Foo volatile const a;", "volatile const Foo a;", Style);
924 verifyFormat("Foo volatile const a;", "Foo const volatile a;", Style);
925 verifyFormat("Foo volatile const a;", Style);
926 verifyFormat("Foo volatile const a;", "const Foo volatile a;", Style);
930 FormatStyle Style = getLLVMStyle();
931 Style.QualifierAlignment = FormatStyle::QAS_Left;
932 Style.QualifierOrder = {"inline", "static", "const", "volatile", "type"};
933 EXPECT_EQ(Style.QualifierOrder.size(), (size_t)5);
936 "const inline static volatile int a;", Style);
938 "volatile inline static const int a;", Style);
940 "int const inline static volatile a;", Style);
942 "int volatile inline static const a;", Style);
944 "const int inline static volatile a;", Style);
948 FormatStyle Style = getLLVMStyle();
949 Style.QualifierAlignment = FormatStyle::QAS_Custom;
950 Style.QualifierOrder = {"static", "type", "const"};
951 EXPECT_EQ(Style.QualifierOrder.size(), (size_t)3);
954 "foo(const std::string & = std::string()) const", Style);
956 "foo(const std::string & = std::string())", Style);
961 FormatStyle Style = getLLVMStyle();
962 Style.QualifierAlignment = FormatStyle::QAS_Custom;
963 Style.QualifierOrder = {"type", "const"};
964 EXPECT_EQ(Style.QualifierOrder.size(), (size_t)2);
966 verifyFormat("int const a;", "const int a;", Style);
967 verifyFormat("int const *a;", "const int*a;", Style);
968 verifyFormat("int const *a;", "const int *a;", Style);
969 verifyFormat("int const &a;", "const int &a;", Style);
970 verifyFormat("int const &&a;", "const int &&a;", Style);
975 FormatStyle Style = getLLVMStyle();
976 Style.QualifierAlignment = FormatStyle::QAS_Custom;
977 Style.QualifierOrder = {"const", "type"};
978 EXPECT_EQ(Style.QualifierOrder.size(), (size_t)2);
980 verifyFormat("const int a;", "int const a;", Style);
981 verifyFormat("const int *a;", "int const *a;", Style);
982 verifyFormat("const int *const a;", "int const *const a;", Style);
984 verifyFormat("const int a = foo();", "int const a = foo();", Style);
985 verifyFormat("const int *a = foo();", "int const *a = foo();", Style);
987 Style);
989 verifyFormat("const auto a = foo();", "auto const a = foo();", Style);
990 verifyFormat("const auto *a = foo();", "auto const *a = foo();", Style);
992 Style);
997 FormatStyle Style = getLLVMStyle();
998 Style.QualifierAlignment = FormatStyle::QAS_Custom;
999 Style.QualifierOrder = {"static", "inline", "type", "const", "volatile"};
1000 EXPECT_EQ(Style.QualifierOrder.size(), (size_t)5);
1003 "const inline static volatile int a;", Style);
1005 "volatile inline static const int a;", Style);
1007 "int const inline static volatile a;", Style);
1009 "int volatile inline static const a;", Style);
1011 "const int inline static volatile a;", Style);
1014 "const int inline static volatile *const a;", Style);
1017 "const inline static volatile Foo a;", Style);
1019 "volatile inline static const Foo a;", Style);
1021 "Foo const inline static volatile a;", Style);
1023 "Foo volatile inline static const a;", Style);
1025 "const Foo inline static volatile a;", Style);
1028 "const Foo inline static volatile *const a;", Style);
1032 FormatStyle Style = getLLVMStyle();
1033 Style.QualifierAlignment = FormatStyle::QAS_Custom;
1034 Style.QualifierOrder = {"static", "inline", "type", "const", "volatile"};
1039 prepareLeftRightOrderingForQualifierAlignmentFixer(Style.QualifierOrder, Left,
1137 FormatStyle Style = getLLVMStyle();
1138 Style.QualifierAlignment = FormatStyle::QAS_Left;
1139 Style.QualifierOrder = {"const", "type"};
1141 verifyFormat("Foo(const Bar &name);", "Foo(Bar const &name);", Style);
1146 FormatStyle Style = getLLVMStyle();
1147 Style.QualifierAlignment = FormatStyle::QAS_Left;
1148 Style.QualifierOrder = {"const", "volatile", "type"};
1150 verifyFormat("inline static const int a;", Style);
1152 Style.QualifierOrder = {"static", "const", "type"};
1154 verifyFormat("inline static const int a;", Style);
1155 verifyFormat("static inline const int a;", Style);
1157 verifyFormat("static const int a;", "const static int a;", Style);
1159 Style.QualifierOrder = {"const", "volatile", "type"};
1162 Style);
1164 Style);
1166 Style);
1168 Style);
1170 Style);
1172 Style);
1174 verifyFormat("inline static const Foo;", "inline static Foo const;", Style);
1175 verifyFormat("inline static const Foo;", Style);
1178 verifyFormat("inline const static Foo;", Style);
1179 verifyFormat("const inline static Foo;", Style);
1183 auto Style = getLLVMStyle();
1184 Style.QualifierAlignment = FormatStyle::QAS_Custom;
1185 Style.QualifierOrder = {"constexpr", "inline", "type"};
1192 Style);
1197 FormatStyle Style = getLLVMStyle();
1198 Style.QualifierAlignment = FormatStyle::QAS_Left;
1199 Style.QualifierOrder = {"const", "type"};
1202 "Foo(unsigned const char *bytes)", Style);
1204 Style.QualifierAlignment = FormatStyle::QAS_Right;
1205 Style.QualifierOrder = {"type", "const"};
1208 "Foo(unsigned const char *bytes)", Style);
1213 FormatStyle Style = getLLVMStyle();
1214 Style.QualifierAlignment = FormatStyle::QAS_Custom;
1215 Style.QualifierOrder = {"static", "const", "type"};
1217 verifyFormat("static const uint32 foo[] = {0, 31};", Style);
1220 verifyFormat("#define MACRO static const", Style);
1223 verifyFormat("using sc = static const", Style);
1228 FormatStyle Style = getLLVMStyle();
1229 Style.QualifierAlignment = FormatStyle::QAS_Custom;
1230 Style.QualifierOrder = {"static", "const", "type"};
1234 verifyFormat("using A = B<>;", Style);
1235 verifyFormat("using A = B /**/<>;", Style);
1236 verifyFormat("template <class C> using A = B<Foo<C>, 1>;", Style);
1237 verifyFormat("template <class C> using A = B /**/<Foo<C>, 1>;", Style);
1238 verifyFormat("template <class C> using A = B /* */<Foo<C>, 1>;", Style);
1239 verifyFormat("template <class C> using A = B /*foo*/<Foo<C>, 1>;", Style);
1240 verifyFormat("template <class C> using A = B /**/ /**/<Foo<C>, 1>;", Style);
1241 verifyFormat("template <class C> using A = B<Foo</**/ C>, 1>;", Style);
1242 verifyFormat("template <class C> using A = /**/ B<Foo<C>, 1>;", Style);
1247 Style);
1250 Style.QualifierOrder = {"type", "static", "const"};
1251 verifyFormat("using A = B<>;", Style);
1252 verifyFormat("using A = B /**/<>;", Style);
1253 verifyFormat("template <class C> using A = B<Foo<C>, 1>;", Style);
1254 verifyFormat("template <class C> using A = B /**/<Foo<C>, 1>;", Style);
1255 verifyFormat("template <class C> using A = B /* */<Foo<C>, 1>;", Style);
1256 verifyFormat("template <class C> using A = B /*foo*/<Foo<C>, 1>;", Style);
1257 verifyFormat("template <class C> using A = B /**/ /**/<Foo<C>, 1>;", Style);
1258 verifyFormat("template <class C> using A = B<Foo</**/ C>, 1>;", Style);
1259 verifyFormat("template <class C> using A = /**/ B<Foo<C>, 1>;", Style);
1264 Style);
1268 FormatStyle Style = getLLVMStyle();
1269 Style.QualifierAlignment = FormatStyle::QAS_Custom;
1270 Style.QualifierOrder = {"constexpr", "type"};
1275 Style);
1279 Style);
1283 FormatStyle Style = getLLVMStyle();
1284 Style.QualifierAlignment = FormatStyle::QAS_Custom;
1285 Style.QualifierOrder = {"static", "constexpr", "inline", "type"};
1289 Style);
1291 "[[maybe_unused]] constexpr static int A", Style);
1295 FormatStyle Style = getLLVMStyle();
1296 Style.QualifierAlignment = FormatStyle::QAS_Custom;
1297 Style.QualifierOrder = {"inline", "static", "const", "type"};
1303 Style);
1313 Style);
1317 FormatStyle Style = getLLVMStyle();
1318 Style.QualifierAlignment = FormatStyle::QAS_Custom;
1319 Style.QualifierOrder = {"type", "const"};
1322 "template <typename T> const Foo f();", Style);
1324 "template <typename T> const int f();", Style);
1326 verifyFormat("template <T const> t;", "template <const T> t;", Style);
1333 Style);
1334 verifyFormat("TemplateType<T const> t;", "TemplateType<const T> t;", Style);
1336 "TemplateType<const Container> t;", Style);
1340 FormatStyle Style = getLLVMStyle();
1341 Style.QualifierAlignment = FormatStyle::QAS_Custom;
1342 Style.QualifierOrder = {"const", "volatile", "type"};
1345 "template <typename T> Foo const f();", Style);
1347 "template <typename T> int const f();", Style);
1349 verifyFormat("template <const T> t;", "template <T const> t;", Style);
1356 Style);
1363 Style);
1364 verifyFormat("TemplateType<const T> t;", "TemplateType<T const> t;", Style);
1366 "TemplateType<Container const> t;", Style);
1370 FormatStyle Style = getLLVMStyle();
1371 Style.QualifierAlignment = FormatStyle::QAS_Custom;
1372 Style.QualifierOrder = {"const", "volatile", "type"};
1379 Style, {tooling::Range(0, 36)});
1389 Style, {tooling::Range(37, 36)});