|
16 | 16 | #include <quick-lint-js/padded-string.h> |
17 | 17 | #include <vector> |
18 | 18 |
|
19 | | -#define ERROR_TYPE_FIELD(diag_type, member, matcher) \ |
20 | | - ::testing::VariantWith<diag_type>( \ |
| 19 | +#define DIAG_TYPE_FIELD(diag_type, member, matcher) \ |
| 20 | + ::testing::VariantWith<diag_type>( \ |
21 | 21 | ::testing::Field(#member, &diag_type::member, matcher)) |
22 | 22 |
|
23 | | -#define ERROR_TYPE_2_FIELDS(diag_type, member_1, matcher_1, member_2, \ |
24 | | - matcher_2) \ |
25 | | - ::testing::VariantWith<diag_type>(::testing::AllOf( \ |
26 | | - ::testing::Field(#member_1, &diag_type::member_1, matcher_1), \ |
| 23 | +#define DIAG_TYPE_2_FIELDS(diag_type, member_1, matcher_1, member_2, \ |
| 24 | + matcher_2) \ |
| 25 | + ::testing::VariantWith<diag_type>(::testing::AllOf( \ |
| 26 | + ::testing::Field(#member_1, &diag_type::member_1, matcher_1), \ |
27 | 27 | ::testing::Field(#member_2, &diag_type::member_2, matcher_2))) |
28 | 28 |
|
29 | | -#define ERROR_TYPE_3_FIELDS(diag_type, member_1, matcher_1, member_2, \ |
30 | | - matcher_2, member_3, matcher_3) \ |
31 | | - ::testing::VariantWith<diag_type>(::testing::AllOf( \ |
32 | | - ::testing::Field(#member_1, &diag_type::member_1, matcher_1), \ |
33 | | - ::testing::Field(#member_2, &diag_type::member_2, matcher_2), \ |
| 29 | +#define DIAG_TYPE_3_FIELDS(diag_type, member_1, matcher_1, member_2, \ |
| 30 | + matcher_2, member_3, matcher_3) \ |
| 31 | + ::testing::VariantWith<diag_type>(::testing::AllOf( \ |
| 32 | + ::testing::Field(#member_1, &diag_type::member_1, matcher_1), \ |
| 33 | + ::testing::Field(#member_2, &diag_type::member_2, matcher_2), \ |
34 | 34 | ::testing::Field(#member_3, &diag_type::member_3, matcher_3))) |
35 | 35 |
|
36 | 36 | // Equivalent to ::testing::VariantWith<type>(::testing::_), but compiles much |
37 | 37 | // more quickly. |
38 | | -#define ERROR_TYPE(type) \ |
| 38 | +#define DIAG_TYPE(type) \ |
39 | 39 | ::quick_lint_js::diag_matcher(::quick_lint_js::diag_type::type) |
40 | 40 |
|
41 | 41 | // Equivalent to the following, but compiles much more quickly: |
42 | 42 | // |
43 | | -// ERROR_TYPE_FIELD(type, member_0, |
| 43 | +// DIAG_TYPE_FIELD(type, member_0, |
44 | 44 | // offsets_matcher(code, start_0, end_or_text_0)) |
45 | 45 | // |
46 | 46 | // but compiles much more quickly. |
47 | | -#define ERROR_TYPE_OFFSETS(code, type, member_0, start_0, end_or_text_0) \ |
48 | | - ::quick_lint_js::diag_matcher( \ |
49 | | - code, ::quick_lint_js::diag_type::type, \ |
50 | | - ::quick_lint_js::diag_matcher::field{ \ |
51 | | - #member_0, \ |
52 | | - offsetof(type, member_0), \ |
53 | | - ::quick_lint_js::get_error_matcher_field_type<decltype( \ |
54 | | - type::member_0)>(), \ |
55 | | - start_0, \ |
56 | | - end_or_text_0, \ |
| 47 | +#define DIAG_TYPE_OFFSETS(code, type, member_0, start_0, end_or_text_0) \ |
| 48 | + ::quick_lint_js::diag_matcher( \ |
| 49 | + code, ::quick_lint_js::diag_type::type, \ |
| 50 | + ::quick_lint_js::diag_matcher::field{ \ |
| 51 | + #member_0, \ |
| 52 | + offsetof(type, member_0), \ |
| 53 | + ::quick_lint_js::get_error_matcher_field_type<decltype( \ |
| 54 | + type::member_0)>(), \ |
| 55 | + start_0, \ |
| 56 | + end_or_text_0, \ |
57 | 57 | }) |
58 | 58 |
|
59 | 59 | // Equivalent to the following, but compiles much more quickly: |
60 | 60 | // |
61 | | -// ERROR_TYPE_FIELD(type, |
| 61 | +// DIAG_TYPE_FIELD(type, |
62 | 62 | // member_0, offsets_matcher(code, start_0, end_or_text_0), |
63 | 63 | // member_1, offsets_matcher(code, start_1, end_or_text_1)) |
64 | | -#define ERROR_TYPE_2_OFFSETS(code, type, member_0, start_0, end_or_text_0, \ |
65 | | - member_1, start_1, end_or_text_1) \ |
66 | | - ::quick_lint_js::diag_matcher( \ |
67 | | - code, ::quick_lint_js::diag_type::type, \ |
68 | | - ::quick_lint_js::diag_matcher::field{ \ |
69 | | - #member_0, \ |
70 | | - offsetof(type, member_0), \ |
71 | | - ::quick_lint_js::get_error_matcher_field_type<decltype( \ |
72 | | - type::member_0)>(), \ |
73 | | - start_0, \ |
74 | | - end_or_text_0, \ |
75 | | - }, \ |
76 | | - ::quick_lint_js::diag_matcher::field{ \ |
77 | | - #member_1, \ |
78 | | - offsetof(type, member_1), \ |
79 | | - ::quick_lint_js::get_error_matcher_field_type<decltype( \ |
80 | | - type::member_1)>(), \ |
81 | | - start_1, \ |
82 | | - end_or_text_1, \ |
| 64 | +#define DIAG_TYPE_2_OFFSETS(code, type, member_0, start_0, end_or_text_0, \ |
| 65 | + member_1, start_1, end_or_text_1) \ |
| 66 | + ::quick_lint_js::diag_matcher( \ |
| 67 | + code, ::quick_lint_js::diag_type::type, \ |
| 68 | + ::quick_lint_js::diag_matcher::field{ \ |
| 69 | + #member_0, \ |
| 70 | + offsetof(type, member_0), \ |
| 71 | + ::quick_lint_js::get_error_matcher_field_type<decltype( \ |
| 72 | + type::member_0)>(), \ |
| 73 | + start_0, \ |
| 74 | + end_or_text_0, \ |
| 75 | + }, \ |
| 76 | + ::quick_lint_js::diag_matcher::field{ \ |
| 77 | + #member_1, \ |
| 78 | + offsetof(type, member_1), \ |
| 79 | + ::quick_lint_js::get_error_matcher_field_type<decltype( \ |
| 80 | + type::member_1)>(), \ |
| 81 | + start_1, \ |
| 82 | + end_or_text_1, \ |
83 | 83 | }) |
84 | 84 |
|
85 | 85 | // Equivalent to the following, but compiles much more quickly: |
86 | 86 | // |
87 | | -// ERROR_TYPE_FIELD(type, |
| 87 | +// DIAG_TYPE_FIELD(type, |
88 | 88 | // member_0, offsets_matcher(code, start_0, end_or_text_0), |
89 | 89 | // member_1, offsets_matcher(code, start_1, end_or_text_1), |
90 | 90 | // member_2, offsets_matcher(code, start_2, end_or_text_2)) |
91 | | -#define ERROR_TYPE_3_OFFSETS(code, type, member_0, start_0, end_or_text_0, \ |
92 | | - member_1, start_1, end_or_text_1, member_2, \ |
93 | | - start_2, end_or_text_2) \ |
94 | | - ::quick_lint_js::diag_matcher( \ |
95 | | - code, ::quick_lint_js::diag_type::type, \ |
96 | | - ::quick_lint_js::diag_matcher::field{ \ |
97 | | - #member_0, \ |
98 | | - offsetof(type, member_0), \ |
99 | | - ::quick_lint_js::get_error_matcher_field_type<decltype( \ |
100 | | - type::member_0)>(), \ |
101 | | - start_0, \ |
102 | | - end_or_text_0, \ |
103 | | - }, \ |
104 | | - ::quick_lint_js::diag_matcher::field{ \ |
105 | | - #member_1, \ |
106 | | - offsetof(type, member_1), \ |
107 | | - ::quick_lint_js::get_error_matcher_field_type<decltype( \ |
108 | | - type::member_1)>(), \ |
109 | | - start_1, \ |
110 | | - end_or_text_1, \ |
111 | | - }, \ |
112 | | - ::quick_lint_js::diag_matcher::field{ \ |
113 | | - #member_2, \ |
114 | | - offsetof(type, member_2), \ |
115 | | - ::quick_lint_js::get_error_matcher_field_type<decltype( \ |
116 | | - type::member_2)>(), \ |
117 | | - start_2, \ |
118 | | - end_or_text_2, \ |
| 91 | +#define DIAG_TYPE_3_OFFSETS(code, type, member_0, start_0, end_or_text_0, \ |
| 92 | + member_1, start_1, end_or_text_1, member_2, \ |
| 93 | + start_2, end_or_text_2) \ |
| 94 | + ::quick_lint_js::diag_matcher( \ |
| 95 | + code, ::quick_lint_js::diag_type::type, \ |
| 96 | + ::quick_lint_js::diag_matcher::field{ \ |
| 97 | + #member_0, \ |
| 98 | + offsetof(type, member_0), \ |
| 99 | + ::quick_lint_js::get_error_matcher_field_type<decltype( \ |
| 100 | + type::member_0)>(), \ |
| 101 | + start_0, \ |
| 102 | + end_or_text_0, \ |
| 103 | + }, \ |
| 104 | + ::quick_lint_js::diag_matcher::field{ \ |
| 105 | + #member_1, \ |
| 106 | + offsetof(type, member_1), \ |
| 107 | + ::quick_lint_js::get_error_matcher_field_type<decltype( \ |
| 108 | + type::member_1)>(), \ |
| 109 | + start_1, \ |
| 110 | + end_or_text_1, \ |
| 111 | + }, \ |
| 112 | + ::quick_lint_js::diag_matcher::field{ \ |
| 113 | + #member_2, \ |
| 114 | + offsetof(type, member_2), \ |
| 115 | + ::quick_lint_js::get_error_matcher_field_type<decltype( \ |
| 116 | + type::member_2)>(), \ |
| 117 | + start_2, \ |
| 118 | + end_or_text_2, \ |
119 | 119 | }) |
120 | 120 |
|
121 | 121 | namespace quick_lint_js { |
@@ -170,7 +170,7 @@ class span_matcher { |
170 | 170 | // A mix of ::testing::VariantWith, ::testing::Field, and offsets_matcher. These |
171 | 171 | // are combined into one matcher to significantly reduce compile times. |
172 | 172 | // |
173 | | -// See ERROR_TYPE and ERROR_TYPE_OFFSETS for example usage. |
| 173 | +// See DIAG_TYPE and DIAG_TYPE_OFFSETS for example usage. |
174 | 174 | class diag_matcher { |
175 | 175 | public: |
176 | 176 | enum class field_type { |
@@ -221,7 +221,7 @@ class diag_matcher { |
221 | 221 | state state_; |
222 | 222 | }; |
223 | 223 |
|
224 | | -// Internal helper for ERROR_TYPE_OFFSETS macros. |
| 224 | +// Internal helper for DIAG_TYPE_OFFSETS macros. |
225 | 225 | template <class> |
226 | 226 | constexpr diag_matcher::field_type get_error_matcher_field_type() noexcept = |
227 | 227 | delete; |
|
0 commit comments