[llvm-bugs] [Bug 38910] New: Replacements::add does not de-duplicate, as documented

via llvm-bugs llvm-bugs at lists.llvm.org
Wed Sep 12 02:41:29 PDT 2018


https://bugs.llvm.org/show_bug.cgi?id=38910

            Bug ID: 38910
           Summary: Replacements::add does not de-duplicate, as documented
           Product: clang
           Version: trunk
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: C++
          Assignee: unassignedclangbugs at nondot.org
          Reporter: steveire at gmail.com
                CC: dgregor at apple.com, llvm-bugs at lists.llvm.org

The documentation contains:

  /// 4. Replacement A(0, 3, "ab") and B(0, 3, "ab") are order-independent
since
  ///    applying the same replacement twice is equivalent to applying it once.

However, instead, the method duplicates the insertion.

This incorrect behavior is also tested:

    TEST_F(ApplyAtomicChangesTest, AppliesDuplicateInsertions) {
      setInput("int a;");
      Changes.push_back(replacementToAtomicChange("key1", 5, 0, "b"));
      Changes.push_back(replacementToAtomicChange("key2", 5, 0, "b"));
      EXPECT_EQ("int abb;", rewrite());
    }


When I run the modernize-use-override clang-tidy check with -export-fixes and
later apply them with clang-apply-replacements, this means that I get multiple
`override` keywords in the rewritten code.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20180912/47abab51/attachment.html>


More information about the llvm-bugs mailing list