[libcxx-commits] [PATCH] D139270: [libc++] Rename __tuple to __tuple_dir to avoid file collision
Louis Dionne via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Wed Dec 21 07:58:35 PST 2022
ldionne added inline comments.
================
Comment at: libcxx/utils/generate_iwyu_mapping.py:34
for i in detail_directories:
- result.append(f'{generate(f"@<{i}/.*>", i[2:])},')
+ result.append(f'{generate(f"@<{i}/.*>", i[2:].rstrip("2"))},')
----------------
mgorny wrote:
> ldionne wrote:
> > tahonermann wrote:
> > > This is a change I would object to on the basis that it is fragile.
> > I actually don't quite understand why this change is needed, can you explain? Sorry if that's simple.
> Without this change:
>
> ```
> diff --git a/libcxx/include/libcxx.imp b/libcxx/include/libcxx.imp
> index 2c591b71737b..2ed026d76e4a 100644
> --- a/libcxx/include/libcxx.imp
> +++ b/libcxx/include/libcxx.imp
> @@ -39,7 +39,7 @@
> { include: [ "@<__string/.*>", "private", "<string>", "public" ] },
> { include: [ "@<__support/.*>", "private", "<support>", "public" ] },
> { include: [ "@<__thread/.*>", "private", "<thread>", "public" ] },
> - { include: [ "@<__tuple_dir/.*>", "private", "<tuple>", "public" ] },
> + { include: [ "@<__tuple_dir/.*>", "private", "<tuple_dir>", "public" ] },
> { include: [ "@<__type_traits/.*>", "private", "<type_traits>", "public" ] },
> { include: [ "@<__utility/.*>", "private", "<utility>", "public" ] },
> { include: [ "@<__variant/.*>", "private", "<variant>", "public" ] },
> ```
Oh, thanks. I suggest we do this instead:
```
temporary_mappings = {'__tuple_dir': 'tuple'}
for dir in detail_directories:
public_header = temporary_mappings.get(dir, dir.lstrip('_'))
result.append(f'{generate(f"@<{dir}/.*>", public_header)},')
```
That way we'll find this when we grep for `__tuple_dir` in the future.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D139270/new/
https://reviews.llvm.org/D139270
More information about the libcxx-commits
mailing list