- Add unit tests for renaming enum.
- Support unscoped enum constants in expressions.
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
lib/Tooling/Refactoring/Rename/USRLocFinder.cpp | ||
---|---|---|
212 ↗ | (On Diff #119263) | Why do we ignore this case? What if Color is moved to a different namespace? We would also need to qualify Green with a new namespace. |
218 ↗ | (On Diff #119263) | nit: no braces |
228 ↗ | (On Diff #119263) | I'm wondering why the old EndLoc points to G instead of n in Green. |
lib/Tooling/Refactoring/Rename/USRLocFinder.cpp | ||
---|---|---|
212 ↗ | (On Diff #119263) | Thanks for pointing it out (we missed such test case before). Yeah, this should be a FIXME, and added the case to the unittest. |
228 ↗ | (On Diff #119263) | This is the behavior of Expr->getLocEnd() or Expr->getSourceRange().getEnd(), which returns the start location of the last token. |
lib/Tooling/Refactoring/Rename/USRLocFinder.cpp | ||
---|---|---|
212 ↗ | (On Diff #119263) | It would be nice if this could also be fixed in this patch; I think it might affect the current code structure. This doesn't seem to be a very hard case to fix after all? |
228 ↗ | (On Diff #119263) | I'm a bit nervous about the implementation - it feels a bit too hacky... Would it be possible to get the range for the qualifier ns1::ns2:: from the DeclRefExpr? |
Use getQualifierLoc.
lib/Tooling/Refactoring/Rename/USRLocFinder.cpp | ||
---|---|---|
212 ↗ | (On Diff #119263) | To fix this case , we have to insert the prefix qualifier at the BeginLoc, which is not supported by the current code. |
228 ↗ | (On Diff #119263) | Switched to use getQualifierLoc, we still need to exclude the last :: by moving 1 character backward. |