[all-commits] [llvm/llvm-project] 5f7f48: [clangd] Fix non-idempotent cases of canonicalRena...

Sam McCall via All-commits all-commits at lists.llvm.org
Wed Oct 5 12:23:23 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 5f7f4846e826f97c7f298fe419c958398d5a0386
      https://github.com/llvm/llvm-project/commit/5f7f4846e826f97c7f298fe419c958398d5a0386
  Author: Sam McCall <sam.mccall at gmail.com>
  Date:   2022-10-05 (Wed, 05 Oct 2022)

  Changed paths:
    M clang-tools-extra/clangd/refactor/Rename.cpp
    M clang-tools-extra/clangd/unittests/RenameTests.cpp

  Log Message:
  -----------
  [clangd] Fix non-idempotent cases of canonicalRenameDecl()

The simplest way to ensure full canonicalization is to canonicalize
recursively in most cases.

This fixes an assertion failure and presumably correctness bugs.

It does show up that D132797's index-based virtual method renames doesn't handle
templates well (the AST behavior is different and IMO better).
We could choose to disable in this case or change the index behavior,
but this patch doesn't do either.

Differential Revision: https://reviews.llvm.org/D133415




More information about the All-commits mailing list