ilya-biryukov added inline comments.
================
Comment at: clang/include/clang/Tooling/Refactoring/Transformer.h:89
+ /// relevant name, not including qualifiers.
+ Name,
+};
----------------
ymandel wrote:
> ilya-biryukov wrote:
> > Same here, what happens to the template arguments and multi-token names,
> > e.g.
> > `operator +` or `foo<int, int>`?
> Good point. This seems difficult to get right, since NamedDecl does not carry
> sufficient loc data. However, I've updated the code to explicitly fail in
> such cases, so at least we won't have bad rewrites.
>
> BTW, any idea whether constructor initializers can ever be multi token?
> BTW, any idea whether constructor initializers can ever be multi token?
Two cases come to mind:
1. arbitrary names when initializing base classes, something like
`::ns::X<int>(10)`
2. template packs with ellipsis (although ellipsis shouldn't be normally part
that we replace, I guess): `Base(10)...`
Full example:
```
namespace ns {
struct X {
X(int);
};
}
template <class ...Bases>
struct Y : ns::X, Bases... {
Y() : ns::X(10), Bases(10)... {
}
};
struct Z {
Z(int);
};
struct W {
W(int);
};
Y<Z, W> y;
```
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D59376/new/
https://reviews.llvm.org/D59376
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits