-
Notifications
You must be signed in to change notification settings - Fork 10
/
.inshpect.toml
362 lines (353 loc) · 20.6 KB
/
.inshpect.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
# Copyright (c) 2022 ETH Zurich
#
# SPDX-License-Identifier: BSL-1.0
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
extensions = [
"c",
"cpp",
"cu",
"cxx",
"h",
"hpp",
"hxx",
"inc",
"ipp",
"cuh",
]
[copyright]
enable = true
[license]
enable = true
pattern = 'Boost[\s]+Software[\s]+License'
[spdx]
enable = true
pattern = 'BSL-1.0'
[pragma_once]
enable = true
extensions = [
"h",
"hpp",
"hxx",
"inc",
"ipp",
"cuh",
]
[deprecated_includes]
enable = true
patterns = [
{ pattern = 'boost/move/move\.hpp', replacement = 'utility' },
{ pattern = 'boost/atomic/atomic\.hpp', replacement = 'boost/atomic.hpp' },
{ pattern = 'boost/thread/locks.hpp', replacement = 'mutex or shared_mutex' },
{ pattern = 'boost/type_traits\.hpp', replacement = 'type_traits' },
{ pattern = 'boost/type_traits/([a-z_]+)\.hpp', replacement = 'type_traits' },
{ pattern = 'boost/unordered_map\.hpp', replacement = 'unordered_map' },
{ pattern = 'boost/unordered_set\.hpp', replacement = 'unordered_set' },
{ pattern = 'boost/utility/enable_if\.hpp', replacement = 'type_traits' },
{ pattern = 'boost/detail/atomic_count\.hpp', replacement = 'pika/thread_support/atomic_count.hpp' },
{ pattern = 'boost/function\.hpp', replacement = 'pika/util/function.hpp' },
{ pattern = 'boost/shared_pt\r\.hpp', replacement = 'memory' },
{ pattern = 'boost/intrusive_ptr\.hpp', replacement = 'pika/modules/memory.hpp' },
{ pattern = 'boost/make_shared\.hpp', replacement = 'memory' },
{ pattern = 'boost/enable_shared_from_this\.hpp', replacement = 'memory' },
{ pattern = 'boost/bind\.hpp', replacement = 'pika/util/bind.hpp' },
{ pattern = 'boost/(chrono/)?chrono\.hpp', replacement = 'chrono' },
{ pattern = 'boost/(core/)?ref\.hpp', replacement = 'functional' },
{ pattern = 'boost/cstdint\.hpp', replacement = 'cstdint' },
{ pattern = 'boost/thread/barrier\.hpp', replacement = 'pika/util/barrier.hpp' },
{ pattern = 'boost/exception_ptr\.hpp', replacement = 'exception' },
{ pattern = 'boost/range/iterator_range\.hpp', replacement = 'pika/iterator_support/iterator_range.hpp' },
{ pattern = 'pika/pika_fwd\.hpp', replacement = 'nothing (remove unconditionally)' },
{ pattern = 'boost/preprocessor/cat\.hpp', replacement = 'pika/util/detail/pp/cat.hpp' },
{ pattern = 'boost/preprocessor/stringize\.hpp', replacement = 'pika/util/detail/pp/stringize.hpp' },
{ pattern = 'boost/atomic\.hpp', replacement = 'atomic' },
{ pattern = 'boost/nondet_random.hpp', replacement = 'random' },
{ pattern = 'boost/random/([a-z_]+)\.hpp', replacement = 'random' },
{ pattern = 'boost/format\.hpp', replacement = 'pika/util/format.hpp' },
{ pattern = 'boost/regex.hpp', replacement = 'regex' },
{ pattern = 'boost/program_options([^\s]*)\.hpp', replacement = 'pika/program_options.hpp' },
{ pattern = 'boost/filesystem([^\s]*)\.hpp', replacement = 'filesystem' },
{ pattern = 'boost/lexical_cast\.hpp', replacement = 'pika/string_util/((from_string)|(to_string)).hpp' },
{ pattern = 'boost/system([^\s]*)\.hpp', replacement = 'system_error' },
]
[deprecated_names]
enable = true
patterns = [
{ pattern = '\bboost::move\b', replacement = 'std::move' },
{ pattern = '\bboost::forward\b', replacement = 'std::forward' },
{ pattern = '\bboost::noncopyable\b', replacement = 'PIKA_NON_COPYABLE' },
{ pattern = '\bboost::result_of\b', replacement = 'std::result_of' },
{ pattern = '\bboost::decay\b', replacement = 'std::decay' },
{ pattern = '\bboost::enable_if\b', replacement = 'std::enable_if' },
{ pattern = '\bboost::disable_if\b', replacement = 'std::enable_if' },
{ pattern = '\bboost::enable_if_c\b', replacement = 'std::enable_if' },
{ pattern = '\bboost::disable_if_c\b', replacement = 'std::enable_if' },
{ pattern = '\bboost::mpl\b', replacement = 'no specific replacement' },
{ pattern = '\bboost::(is_[a-z_]*?\b)', replacement = 'std::*' },
{ pattern = '\bboost::(add_[^\s]*?\b)', replacement = 'std::*' },
{ pattern = '\bboost::(remove_[a-z_]*?\b)', replacement = 'std::*' },
{ pattern = '\bboost::(((false)|(true))_type\b)', replacement = 'std::*' },
{ pattern = '\bboost::lock_guard\b', replacement = 'std::lock_guard' },
{ pattern = '\bboost::unordered_map\b', replacement = 'std::unordered_map' },
{ pattern = '\bboost::unordered_multimap\b', replacement = 'std::unordered_multimap' },
{ pattern = '\bboost::unordered_set\b', replacement = 'std::unordered_set' },
{ pattern = '\bboost::unordered_multiset\b', replacement = 'std::unordered_multiset' },
{ pattern = '\bboost::detail::atomic_count\b', replacement = 'pika::detail::atomic_count' },
{ pattern = '\bboost::function\b', replacement = 'pika::util::detail::function' },
{ pattern = '\bboost::intrusive_ptr\b', replacement = 'pika::intrusive_ptr' },
{ pattern = '\bboost::shared_ptr\b', replacement = 'std::shared_ptr' },
{ pattern = '\bboost::make_shared\b', replacement = 'std::make_shared' },
{ pattern = '\bboost::enable_shared_from_this\b', replacement = 'std::enable_shared_from_this' },
{ pattern = '\bboost::bind\b', replacement = 'pika::util::detail::bind' },
{ pattern = '\bboost::unique_lock\b', replacement = 'std::unique_lock' },
{ pattern = '\bboost::chrono\b', replacement = 'std::chrono' },
{ pattern = '\bboost::reference_wrapper\b', replacement = 'std::reference_wrapper' },
{ pattern = '\bboost::(c?ref)\b', replacement = 'std::*' },
{ pattern = '\bboost::(u?int[0-9]+_t)\b', replacement = 'std::*' },
{ pattern = '\bboost::exception_ptr\b', replacement = 'std::exception_ptr' },
{ pattern = '\bboost::copy_exception\b', replacement = 'std::make_exception_ptr' },
{ pattern = '\bboost::current_exception\b', replacement = 'std::current_exception' },
{ pattern = '\bboost::rethrow_exception\b', replacement = 'std::rethrow_exception' },
{ pattern = '\bboost::enable_error_info\b', replacement = 'pika::throw_with_info' },
{ pattern = '\bboost::iterator_range\b', replacement = 'pika::util::iterator_range' },
{ pattern = '\bboost::make_iterator_range\b', replacement = 'pika::util::make_iterator_range' },
{ pattern = '\bboost::atomic_flag\b', replacement = 'std::atomic_flag' },
{ pattern = '\bboost::atomic\b', replacement = 'std::atomic' },
{ pattern = '\bboost::memory_order_((relaxed)|(acquire)|(release)|(acq_rel)|(seq_cst))\b', replacement = 'std::memory_order_*' },
{ pattern = '\bboost::random::([a-z_]*)\b', replacement = 'std::*' },
{ pattern = '\bboost::format\b', replacement = 'pika::util::format[_to]' },
{ pattern = '\bboost::(regex[a-z_]*)\b', replacement = 'std::*' },
{ pattern = '\bboost::lexical_cast\b', replacement = 'pika::util::((from_string)|(to_string)' },
{ pattern = '\bboost::system::error_code\b', replacement = 'std::error_code' },
{ pattern = '\bboost::system::error_condition\b', replacement = 'std::error_condition' },
{ pattern = '\bboost::system::error_category\b', replacement = 'std::error_category' },
{ pattern = '\bboost::system::system_error\b', replacement = 'std::system_error' },
{ pattern = '(\bpika::\b)?\btraits::\bis_callable\b', replacement = 'std::is_invocable[_r]' },
{ pattern = '(\bpika::\b)?\butil::\bresult_of\b', replacement = 'std::invoke_result' },
{ pattern = '(\bpika::\b)?\butil::\bdecay\b', replacement = 'std::decay' },
{ pattern = '(\bpika::\b)?\butil::\bdecay_t\b', replacement = 'std::decay_t' },
{ pattern = '(\bpika::\b)?\butil::\bvoid\b', replacement = 'std::void' },
{ pattern = '(\bpika::\b)?\butil::\bvoid_t\b', replacement = 'std::void_t' },
{ pattern = '\bNULL\b', replacement = 'nullptr' },
{ pattern = '\b(BOOST_PP_CAT)\b', replacement = 'PIKA_PP_CAT' },
{ pattern = '\b(BOOST_PP_STRINGIZE)\b', replacement = 'PIKA_PP_STRINGIZE' },
{ pattern = '\b(BOOST_STRINGIZE)\b', replacement = 'PIKA_PP_STRINGIZE(PIKA_PP_EXPAND()' },
{ pattern = '\b(BOOST_ASSERT)\b', replacement = 'PIKA_ASSERT' },
]
[disallowed_macros]
enable = true
patterns = [
"BOOST_NO_0X_HDR_ARRAY",
"BOOST_NO_0X_HDR_CHRONO",
"BOOST_NO_0X_HDR_CODECVT",
"BOOST_NO_0X_HDR_CONDITION_VARIABLE",
"BOOST_NO_0X_HDR_FORWARD_LIST",
"BOOST_NO_0X_HDR_FUTURE",
"BOOST_NO_0X_HDR_INITIALIZER_LIST",
"BOOST_NO_INITIALIZER_LISTS",
"BOOST_NO_0X_HDR_MUTEX",
"BOOST_NO_0X_HDR_RANDOM",
"BOOST_NO_0X_HDR_RATIO",
"BOOST_NO_0X_HDR_REGEX",
"BOOST_NO_0X_HDR_SYSTEM_ERROR",
"BOOST_NO_0X_HDR_THREAD",
"BOOST_NO_0X_HDR_TUPLE",
"BOOST_NO_0X_HDR_TYPE_TRAITS",
"BOOST_NO_0X_HDR_TYPEINDEX",
"BOOST_NO_0X_HDR_UNORDERED_SET",
"BOOST_NO_0X_HDR_UNORDERED_MAP",
"BOOST_NO_STD_UNORDERED",
"BOOST_NO_AUTO_DECLARATIONS",
"BOOST_NO_AUTO_MULTIDECLARATIONS",
"BOOST_NO_CHAR16_T",
"BOOST_NO_CHAR32_T",
"BOOST_NO_TEMPLATE_ALIASES",
"BOOST_NO_CONSTEXPR",
"BOOST_NO_DECLTYPE",
"BOOST_NO_DECLTYPE_N3276",
"BOOST_NO_DEFAULTED_FUNCTIONS",
"BOOST_NO_DELETED_FUNCTIONS",
"BOOST_NO_EXPLICIT_CONVERSION_OPERATORS",
"BOOST_NO_EXTERN_TEMPLATE",
"BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS",
"BOOST_NO_LAMBDAS",
"BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS",
"BOOST_NO_NOEXCEPT",
"BOOST_NO_NULLPTR",
"BOOST_NO_RAW_LITERALS",
"BOOST_NO_RVALUE_REFERENCES",
"BOOST_NO_SCOPED_ENUMS",
"BOOST_NO_STATIC_ASSERT",
"BOOST_NO_STD_UNORDERED",
"BOOST_NO_UNICODE_LITERALS",
"BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX",
"BOOST_NO_VARIADIC_TEMPLATES",
"BOOST_NO_VARIADIC_MACROS",
"BOOST_NO_NUMERIC_LIMITS_LOWEST",
"BOOST_HAS_STATIC_ASSERT",
"BOOST_HAS_RVALUE_REFS",
"BOOST_HAS_VARIADIC_TMPL",
"BOOST_HAS_CHAR16_T",
"BOOST_HAS_CHAR32_T",
]
[includes]
enable = true
patterns = [
{ pattern = '\bEXIT_(SUCCESS|FAILURE)\b', include = 'cstdlib' },
{ pattern = '\bstd::(malloc|aligned_alloc|calloc|realloc|free)\b', include = 'cstdlib' },
{ pattern = '\bstd::make_shared\b', include = 'memory' },
{ pattern = '\bstd::map\b', include = 'map' },
{ pattern = '\bstd::set\b', include = 'set' },
{ pattern = '\bstd::multi_map\b', include = 'multi_map' },
{ pattern = '\bstd::multi_set\b', include = 'multi_set' },
{ pattern = '\bstd::unordered_map\b', include = 'unordered_map' },
{ pattern = '\bstd::unordered_set\b', include = 'unordered_set' },
{ pattern = '\bstd::unordered_multi_map\b', include = 'unordered_map' },
{ pattern = '\bstd::unordered_multi_set\b', include = 'unordered_set' },
{ pattern = '\bstd::((shared|unique)_ptr)\b', include = 'memory' },
{ pattern = '\bstd::addressof\b', include = 'memory' },
{ pattern = '\bstd::list\b', include = 'list' },
{ pattern = '\bstd::string\b', include = 'string' },
{ pattern = '\bstd::vector\b', include = 'vector' },
{ pattern = '\bstd::array\b', include = 'array' },
{ pattern = '\bstd::reference_wrapper\b', include = 'functional' },
{ pattern = '\bstd::(c?ref)\b', include = 'functional' },
{ pattern = '\bstd::(u?int[0-9]+_t)\b', include = 'cstdint' },
{ pattern = '\bstd::((i|o)?stringstream)\b', include = 'sstream' },
{ pattern = '\bstd::((i|o)?fstream)\b', include = 'fstream' },
{ pattern = '\bstd::(cin|cout|cerr|clog)\b', include = 'iostream' },
{ pattern = '\bstd::setw\b', include = 'iomanip' },
{ pattern = '\bstd::setprecision\b', include = 'iomanip' },
{ pattern = '\bstd::size_t\b', include = 'cstddef' },
{ pattern = '\bstd::ptrdiff_t\b', include = 'cstddef' },
{ pattern = '\bstd::nullptr_t\b', include = 'cstddef' },
{ pattern = '\bstd::(true|false)_type\b', include = 'type_traits' },
{ pattern = '\bstd::(bool|integral)_constant\b', include = 'type_traits' },
{ pattern = '\bstd::invoke_result\b', include = 'type_traits' },
{ pattern = '\bstd::invoke_result_t\b', include = 'type_traits' },
{ pattern = '\bstd::is_void\b', include = 'type_traits' },
{ pattern = '\bstd::is_void_t\b', include = 'type_traits' },
{ pattern = '\bstd::is_null_pointer\b', include = 'type_traits' },
{ pattern = '\bstd::is_integral\b', include = 'type_traits' },
{ pattern = '\bstd::is_floating_point\b', include = 'type_traits' },
{ pattern = '\bstd::is_array\b', include = 'type_traits' },
{ pattern = '\bstd::is_enum\b', include = 'type_traits' },
{ pattern = '\bstd::is_union\b', include = 'type_traits' },
{ pattern = '\bstd::is_class\b', include = 'type_traits' },
{ pattern = '\bstd::is_function\b', include = 'type_traits' },
{ pattern = '\bstd::is_pointer\b', include = 'type_traits' },
{ pattern = '\bstd::is_lvalue_reference\b', include = 'type_traits' },
{ pattern = '\bstd::is_rvalue_reference\b', include = 'type_traits' },
{ pattern = '\bstd::is_member_object_pointer\b', include = 'type_traits' },
{ pattern = '\bstd::is_member_function_pointer\b', include = 'type_traits' },
{ pattern = '\bstd::is_fundamental\b', include = 'type_traits' },
{ pattern = '\bstd::is_arithmetic\b', include = 'type_traits' },
{ pattern = '\bstd::is_scalar\b', include = 'type_traits' },
{ pattern = '\bstd::is_object\b', include = 'type_traits' },
{ pattern = '\bstd::is_compound\b', include = 'type_traits' },
{ pattern = '\bstd::is_reference\b', include = 'type_traits' },
{ pattern = '\bstd::is_member_pointer\b', include = 'type_traits' },
{ pattern = '\bstd::is_const\b', include = 'type_traits' },
{ pattern = '\bstd::is_volatile\b', include = 'type_traits' },
{ pattern = '\bstd::is_trivial\b', include = 'type_traits' },
{ pattern = '\bstd::is_trivially_copyable\b', include = 'type_traits' },
{ pattern = '\bstd::is_standard_layout\b', include = 'type_traits' },
{ pattern = '\bstd::is_pod\b', include = 'type_traits' },
{ pattern = '\bstd::is_literal_type\b', include = 'type_traits' },
{ pattern = '\bstd::is_empty\b', include = 'type_traits' },
{ pattern = '\bstd::is_polymorphic\b', include = 'type_traits' },
{ pattern = '\bstd::is_abstract\b', include = 'type_traits' },
{ pattern = '\bstd::is_signed\b', include = 'type_traits' },
{ pattern = '\bstd::is_unsigned\b', include = 'type_traits' },
{ pattern = '\bstd::is_constructible\b', include = 'type_traits' },
{ pattern = '\bstd::is_trivially_constructible\b', include = 'type_traits' },
{ pattern = '\bstd::is_nothrow_constructible\b', include = 'type_traits' },
{ pattern = '\bstd::is_default_constructible\b', include = 'type_traits' },
{ pattern = '\bstd::is_trivially_default_constructible\b', include = 'type_traits' },
{ pattern = '\bstd::is_nothrow_default_constructible\b', include = 'type_traits' },
{ pattern = '\bstd::is_copy_constructible\b', include = 'type_traits' },
{ pattern = '\bstd::is_trivially_copy_constructible\b', include = 'type_traits' },
{ pattern = '\bstd::is_nothrow_copy_constructible\b', include = 'type_traits' },
{ pattern = '\bstd::is_move_constructible\b', include = 'type_traits' },
{ pattern = '\bstd::is_trivially_move_constructible\b', include = 'type_traits' },
{ pattern = '\bstd::is_nothrow_move_constructible\b', include = 'type_traits' },
{ pattern = '\bstd::is_assignable\b', include = 'type_traits' },
{ pattern = '\bstd::is_trivially_assignable\b', include = 'type_traits' },
{ pattern = '\bstd::is_nothrow_assignable\b', include = 'type_traits' },
{ pattern = '\bstd::is_copy_assignable\b', include = 'type_traits' },
{ pattern = '\bstd::is_trivially_copy_assignable\b', include = 'type_traits' },
{ pattern = '\bstd::is_nothrow_copy_assignable\b', include = 'type_traits' },
{ pattern = '\bstd::is_move_assignable\b', include = 'type_traits' },
{ pattern = '\bstd::is_trivially_move_assignable\b', include = 'type_traits' },
{ pattern = '\bstd::is_nothrow_move_assignable\b', include = 'type_traits' },
{ pattern = '\bstd::is_destructible\b', include = 'type_traits' },
{ pattern = '\bstd::is_trivially_destructible\b', include = 'type_traits' },
{ pattern = '\bstd::is_same\b', include = 'type_traits' },
{ pattern = '\bstd::is_base_of\b', include = 'type_traits' },
{ pattern = '\bstd::is_convertible\b', include = 'type_traits' },
{ pattern = '\bstd::has_virtual_destructor\b', include = 'type_traits' },
{ pattern = '\bstd::alignment_of\b', include = 'type_traits' },
{ pattern = '\bstd::aligned_storage\b', include = 'type_traits' },
{ pattern = '\bstd::aligned_union\b', include = 'type_traits' },
{ pattern = '\bstd::rank\b', include = 'type_traits' },
{ pattern = '\bstd::extent\b', include = 'type_traits' },
{ pattern = '\bstd::add_(cv|const|pointer|volatile|lvalue_reference|rvalue_reference)\b', include = 'type_traits' },
{ pattern = '\bstd::make_signed\b', include = 'type_traits' },
{ pattern = '\bstd::make_unsigned\b', include = 'type_traits' },
{ pattern = '\bstd::remove_(cv|const|volatile|reference|pointer|extent|all_extents)\b', include = 'type_traits' },
{ pattern = '\bstd::decay\b', include = 'type_traits' },
{ pattern = '\bstd::enable_if\b', include = 'type_traits' },
{ pattern = '\bstd::conditional\b', include = 'type_traits' },
{ pattern = '\bstd::common_type\b', include = 'type_traits' },
{ pattern = '\bstd::underlying_type\b', include = 'type_traits' },
{ pattern = '\bstd::result_of\b', include = 'type_traits' },
{ pattern = '\bstd::is_invocable([a-z_]*)\b', include = 'type_traits' },
{ pattern = '\bstd::(mem((set)|(cpy)|(move)))\b', include = 'cstring' },
{ pattern = '\bstd::swap\b', include = 'utility' },
{ pattern = '\bstd::move\b', include = 'utility' },
{ pattern = '\bstd::forward\b', include = 'utility' },
{ pattern = '\bstd::declval\b', include = 'utility' },
{ pattern = '\bstd::pair\b', include = 'utility' },
{ pattern = '\bstd::make_pair\b', include = 'utility' },
{ pattern = '\bstd::in_place\b', include = 'utility' },
{ pattern = '\bstd::exception_ptr\b', include = 'exception' },
{ pattern = '\bstd::terminate\b', include = 'exception' },
{ pattern = '\bstd::(s|g)et_terminate\b', include = 'exception' },
{ pattern = '\bstd::swap_ranges\b', include = 'algorithm' },
{ pattern = '\bstd::iter_swap\b', include = 'algorithm' },
{ pattern = '\bstd::atomic\b', include = 'atomic' },
{ pattern = '\bstd::(memory_order_[a-z_]+)\b', include = 'atomic' },
{ pattern = '\bstd::(minstd_rand(0)?)\b', include = 'random' },
{ pattern = '\bstd::(mt19937(_64)?)\b', include = 'random' },
{ pattern = '\bstd::random_device\b', include = 'random' },
{ pattern = '\bstd::uniform_(int|uniform)_distribution\b', include = 'random' },
{ pattern = '\bstd::apply\b', include = 'tuple' },
{ pattern = '\bstd::(forward_as_|make_|)tuple\b', include = 'tuple' },
{ pattern = '\bstd::ignore\b', include = 'tuple' },
{ pattern = '\bstd::tie\b', include = 'tuple' },
{ pattern = '\bstd::tuple_(cat|element|size)\b', include = 'tuple' },
{ pattern = '\bstd::(make_)optional\b', include = 'optional' },
{ pattern = '\bstd::nullopt\b', include = 'optional' },
{ pattern = '\bstd::any(|_cast)\b', include = 'any' },
{ pattern = '\bstd::error_(code|condition|category)\b', include = 'system_error' },
{ pattern = '\bstd::system_error\b', include = 'system_error' },
{ pattern = '\bstd::chrono\b', include = 'chrono' },
{ pattern = '\bstd::tm\b', include = 'ctime' },
{ pattern = '\bpika::intrusive_ptr\b', include = 'pika/memory/intrusive_ptr.hpp' },
{ pattern = '\bpika::detail::from_string\b', include = 'pika/string_util/from_string.hpp' },
{ pattern = '\bpika::detail::to_string\b', include = 'pika/string_util/to_string.hpp' },
{ pattern = '\bPIKA_LOG\b', include = 'pika/logging.hpp' },
{ pattern = '\bPIKA_PP_CAT\b', include = 'pika/preprocessor/cat.hpp' },
{ pattern = '\bPIKA_PP_EXPAND\b', include = 'pika/preprocessor/expand.hpp' },
{ pattern = '\bPIKA_PP_NARGS\b', include = 'pika/preprocessor/nargs.hpp' },
{ pattern = '\bPIKA_PP_STRINGIZE\b', include = 'pika/preprocessor/stringize.hpp' },
{ pattern = '\bPIKA_PP_STRIP_PARENS\b', include = 'pika/preprocessor/strip_parens.hpp' },
{ pattern = '\bPIKA_ASSERT\b', include = 'pika/assert.hpp' },
{ pattern = '\bPIKA_ASSERT_MSG\b', include = 'pika/assert.hpp' },
{ pattern = '\bwhip::([a-z_]+)\b', include = 'whip.hpp' },
{ pattern = '\bfmt::format\b', include = 'fmt/format.h' },
{ pattern = '\bfmt::format_to\b', include = 'fmt/format.h' },
{ pattern = '\bfmt::ptr\b', include = 'fmt/format.h' },
{ pattern = '\bfmt::print\b', include = 'fmt/printf.h' },
{ pattern = '\bfmt::streamed\b', include = 'fmt/ostream.h' },
]