[PATCH] D71188: [clangd] Delete ctor initializers while moving functions out-of-line
Kadir Cetinkaya via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Dec 9 05:49:42 PST 2019
kadircet marked an inline comment as done.
kadircet added inline comments.
================
Comment at: clang-tools-extra/clangd/refactor/tweaks/DefineOutline.cpp:269
+ }
+ DeletionRange.setBegin(InitStart);
+ }
----------------
hokein wrote:
> There is an alternative here, I think. The end loc of `FunctionProtoTypeLoc` should point the location after the `)`, e.g. the `Foo()^ : `, would it be easier to use it as as the `InitStart`?
>
> it can be retrieved by `CD->getTypeSourceInfo()->getTypeLoc().getEndLoc()`.
yes, that would be great if attributes didn't exist. e.g.:
```cpp
class Foo {
Foo() __attribute__((weak)) : z(2) {}
int z;
};
```
for the example given above, typeloc.endloc would not include trailing attributes, updated test case according to that.(And added a fixme, since we should not propagate those attributes into definition)
also the approach proposed in this patch would result in minimal changes, by keeping anything before `:` in declaration site.
if we were to make use of endloc we could end up deleting more tokens in between, even if it would be rare to have tokens in between.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D71188/new/
https://reviews.llvm.org/D71188
More information about the cfe-commits
mailing list