[PATCH] D35194: [clang-tidy] clang-apply-replacements: Don't insert null entry
kfunk added a comment. Seems to have worked: Committing to https://llvm.org/svn/llvm-project/clang-tools-extra/trunk ... A test/clang-apply-replacements/Inputs/invalid-files/invalid-files.yaml A test/clang-apply-replacements/invalid-files.cpp M clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp Committed r308974 I presume this Diff is being auto-closed by Phab? Anyhow: Thanks for the review! Repository: rL LLVM https://reviews.llvm.org/D35194 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D35194: [clang-tidy] clang-apply-replacements: Don't insert null entry
This revision was automatically updated to reflect the committed changes. Closed by commit rL308974: [clang-tidy] clang-apply-replacements: Don't insert null entry (authored by kfunk). Repository: rL LLVM https://reviews.llvm.org/D35194 Files: clang-tools-extra/trunk/clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp clang-tools-extra/trunk/test/clang-apply-replacements/Inputs/invalid-files/invalid-files.yaml clang-tools-extra/trunk/test/clang-apply-replacements/invalid-files.cpp Index: clang-tools-extra/trunk/clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp === --- clang-tools-extra/trunk/clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp +++ clang-tools-extra/trunk/clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp @@ -288,13 +288,12 @@ for (const tooling::Replacement : TU.Replacements) { // Use the file manager to deduplicate paths. FileEntries are // automatically canonicalized. - const FileEntry *Entry = SM.getFileManager().getFile(R.getFilePath()); - if (!Entry && Warned.insert(R.getFilePath()).second) { -errs() << "Described file '" << R.getFilePath() - << "' doesn't exist. Ignoring...\n"; -continue; + if (const FileEntry *Entry = SM.getFileManager().getFile(R.getFilePath())) { +GroupedReplacements[Entry].push_back(R); + } else if (Warned.insert(R.getFilePath()).second) { + errs() << "Described file '" << R.getFilePath() + << "' doesn't exist. Ignoring...\n"; } - GroupedReplacements[Entry].push_back(R); } } @@ -314,13 +313,12 @@ for (const tooling::Replacement : Fix.second) { // Use the file manager to deduplicate paths. FileEntries are // automatically canonicalized. - const FileEntry *Entry = SM.getFileManager().getFile(R.getFilePath()); - if (!Entry && Warned.insert(R.getFilePath()).second) { -errs() << "Described file '" << R.getFilePath() - << "' doesn't exist. Ignoring...\n"; -continue; + if (const FileEntry *Entry = SM.getFileManager().getFile(R.getFilePath())) { +GroupedReplacements[Entry].push_back(R); + } else if (Warned.insert(R.getFilePath()).second) { + errs() << "Described file '" << R.getFilePath() + << "' doesn't exist. Ignoring...\n"; } - GroupedReplacements[Entry].push_back(R); } } } Index: clang-tools-extra/trunk/test/clang-apply-replacements/invalid-files.cpp === --- clang-tools-extra/trunk/test/clang-apply-replacements/invalid-files.cpp +++ clang-tools-extra/trunk/test/clang-apply-replacements/invalid-files.cpp @@ -0,0 +1,5 @@ +// RUN: mkdir -p %T/invalid-files +// RUN: clang-apply-replacements %T/invalid-files +// +// Check that the yaml files are *not* deleted after running clang-apply-replacements without remove-change-desc-files. +// RUN: ls %T/Inputs/invalid-files/invalid-files.yaml Index: clang-tools-extra/trunk/test/clang-apply-replacements/Inputs/invalid-files/invalid-files.yaml === --- clang-tools-extra/trunk/test/clang-apply-replacements/Inputs/invalid-files/invalid-files.yaml +++ clang-tools-extra/trunk/test/clang-apply-replacements/Inputs/invalid-files/invalid-files.yaml @@ -0,0 +1,12 @@ +--- +MainSourceFile: '' +Replacements: + - FilePath:idontexist.h +Offset: 2669 +Length: 0 +ReplacementText: ' override' + - FilePath:idontexist.h +Offset: 2669 +Length: 0 +ReplacementText: ' override' +... Index: clang-tools-extra/trunk/clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp === --- clang-tools-extra/trunk/clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp +++ clang-tools-extra/trunk/clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp @@ -288,13 +288,12 @@ for (const tooling::Replacement : TU.Replacements) { // Use the file manager to deduplicate paths. FileEntries are // automatically canonicalized. - const FileEntry *Entry = SM.getFileManager().getFile(R.getFilePath()); - if (!Entry && Warned.insert(R.getFilePath()).second) { -errs() << "Described file '" << R.getFilePath() - << "' doesn't exist. Ignoring...\n"; -continue; + if (const FileEntry *Entry = SM.getFileManager().getFile(R.getFilePath())) { +GroupedReplacements[Entry].push_back(R); + } else if (Warned.insert(R.getFilePath()).second) { + errs() << "Described file '" << R.getFilePath() + << "' doesn't exist. Ignoring...\n"; } - GroupedReplacements[Entry].push_back(R);
[PATCH] D35194: [clang-tidy] clang-apply-replacements: Don't insert null entry
alexfh accepted this revision. alexfh added a comment. This revision is now accepted and ready to land. LG. Do you need someone to commit the patch for you? https://reviews.llvm.org/D35194 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D35194: [clang-tidy] clang-apply-replacements: Don't insert null entry
kfunk updated this revision to Diff 108061. kfunk added a comment. Addressed concerns https://reviews.llvm.org/D35194 Files: clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp test/clang-apply-replacements/Inputs/invalid-files/invalid-files.yaml test/clang-apply-replacements/invalid-files.cpp Index: test/clang-apply-replacements/invalid-files.cpp === --- /dev/null +++ test/clang-apply-replacements/invalid-files.cpp @@ -0,0 +1,5 @@ +// RUN: mkdir -p %T/invalid-files +// RUN: clang-apply-replacements %T/invalid-files +// +// Check that the yaml files are *not* deleted after running clang-apply-replacements without remove-change-desc-files. +// RUN: ls %T/Inputs/invalid-files/invalid-files.yaml Index: test/clang-apply-replacements/Inputs/invalid-files/invalid-files.yaml === --- /dev/null +++ test/clang-apply-replacements/Inputs/invalid-files/invalid-files.yaml @@ -0,0 +1,12 @@ +--- +MainSourceFile: '' +Replacements: + - FilePath:idontexist.h +Offset: 2669 +Length: 0 +ReplacementText: ' override' + - FilePath:idontexist.h +Offset: 2669 +Length: 0 +ReplacementText: ' override' +... Index: clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp === --- clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp +++ clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp @@ -288,13 +288,12 @@ for (const tooling::Replacement : TU.Replacements) { // Use the file manager to deduplicate paths. FileEntries are // automatically canonicalized. - const FileEntry *Entry = SM.getFileManager().getFile(R.getFilePath()); - if (!Entry && Warned.insert(R.getFilePath()).second) { -errs() << "Described file '" << R.getFilePath() - << "' doesn't exist. Ignoring...\n"; -continue; + if (const FileEntry *Entry = SM.getFileManager().getFile(R.getFilePath())) { +GroupedReplacements[Entry].push_back(R); + } else if (Warned.insert(R.getFilePath()).second) { + errs() << "Described file '" << R.getFilePath() + << "' doesn't exist. Ignoring...\n"; } - GroupedReplacements[Entry].push_back(R); } } @@ -314,13 +313,12 @@ for (const tooling::Replacement : Fix.second) { // Use the file manager to deduplicate paths. FileEntries are // automatically canonicalized. - const FileEntry *Entry = SM.getFileManager().getFile(R.getFilePath()); - if (!Entry && Warned.insert(R.getFilePath()).second) { -errs() << "Described file '" << R.getFilePath() - << "' doesn't exist. Ignoring...\n"; -continue; + if (const FileEntry *Entry = SM.getFileManager().getFile(R.getFilePath())) { +GroupedReplacements[Entry].push_back(R); + } else if (Warned.insert(R.getFilePath()).second) { + errs() << "Described file '" << R.getFilePath() + << "' doesn't exist. Ignoring...\n"; } - GroupedReplacements[Entry].push_back(R); } } } Index: test/clang-apply-replacements/invalid-files.cpp === --- /dev/null +++ test/clang-apply-replacements/invalid-files.cpp @@ -0,0 +1,5 @@ +// RUN: mkdir -p %T/invalid-files +// RUN: clang-apply-replacements %T/invalid-files +// +// Check that the yaml files are *not* deleted after running clang-apply-replacements without remove-change-desc-files. +// RUN: ls %T/Inputs/invalid-files/invalid-files.yaml Index: test/clang-apply-replacements/Inputs/invalid-files/invalid-files.yaml === --- /dev/null +++ test/clang-apply-replacements/Inputs/invalid-files/invalid-files.yaml @@ -0,0 +1,12 @@ +--- +MainSourceFile: '' +Replacements: + - FilePath:idontexist.h +Offset: 2669 +Length: 0 +ReplacementText: ' override' + - FilePath:idontexist.h +Offset: 2669 +Length: 0 +ReplacementText: ' override' +... Index: clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp === --- clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp +++ clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp @@ -288,13 +288,12 @@ for (const tooling::Replacement : TU.Replacements) { // Use the file manager to deduplicate paths. FileEntries are // automatically canonicalized. - const FileEntry *Entry = SM.getFileManager().getFile(R.getFilePath()); - if (!Entry && Warned.insert(R.getFilePath()).second) { -errs() << "Described file '" << R.getFilePath() - <<
[PATCH] D35194: [clang-tidy] clang-apply-replacements: Don't insert null entry
alexfh requested changes to this revision. alexfh added a comment. This revision now requires changes to proceed. Thank you for the fix! A few comments below. Comment at: clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp:291-299 const FileEntry *Entry = SM.getFileManager().getFile(R.getFilePath()); - if (!Entry && Warned.insert(R.getFilePath()).second) { -errs() << "Described file '" << R.getFilePath() - << "' doesn't exist. Ignoring...\n"; + if (!Entry) { +if (Warned.insert(R.getFilePath()).second) { + errs() << "Described file '" << R.getFilePath() + << "' doesn't exist. Ignoring...\n"; +} continue; I'd swap the positive and the negative branches and remove `continue`: if (const FileEntry *Entry = ...) { GroupedReplacements[Entry].push_back(R); } else if (...) { errs() << ...; } Same below. Comment at: test/clang-apply-replacements/invalid-files.cpp:1 +// RUN: mkdir -p %T/Inputs/invalid-files +// RUN: clang-apply-replacements %T/Inputs/invalid-files No need for `Inputs` in the path inside the build directory. Comment at: test/clang-apply-replacements/invalid-files.cpp:5-7 +// RUN: ls -1 %T/Inputs/invalid-files | FileCheck %s --check-prefix=YAML +// + YAML: {{.+\.yaml$}} FileCheck is not needed here. Just `// RUN: ls %T/invalid-files/invalid-files.yaml` should be enough to assert the file existence. https://reviews.llvm.org/D35194 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D35194: [clang-tidy] clang-apply-replacements: Don't insert null entry
kfunk added inline comments. Comment at: clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp:296 + << "' doesn't exist. Ignoring...\n"; +} continue; yawanng wrote: > Maybe add some error message here if it's not an existence issue. like > "invalid file path" or something? The same below. Is that really necessary? I think the user won't care. https://reviews.llvm.org/D35194 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D35194: [clang-tidy] clang-apply-replacements: Don't insert null entry
yawanng added a comment. LGTM. Please wait for Alexander approval. Comment at: clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp:296 + << "' doesn't exist. Ignoring...\n"; +} continue; Maybe add some error message here if it's not an existence issue. like "invalid file path" or something? The same below. https://reviews.llvm.org/D35194 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D35194: [clang-tidy] clang-apply-replacements: Don't insert null entry
kfunk updated this revision to Diff 105929. kfunk added a comment. Remove unnecessary `sed` line in test driver https://reviews.llvm.org/D35194 Files: clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp test/clang-apply-replacements/Inputs/invalid-files/invalid-files.yaml test/clang-apply-replacements/invalid-files.cpp Index: test/clang-apply-replacements/invalid-files.cpp === --- /dev/null +++ test/clang-apply-replacements/invalid-files.cpp @@ -0,0 +1,7 @@ +// RUN: mkdir -p %T/Inputs/invalid-files +// RUN: clang-apply-replacements %T/Inputs/invalid-files +// +// Check that the yaml files are *not* deleted after running clang-apply-replacements without remove-change-desc-files. +// RUN: ls -1 %T/Inputs/invalid-files | FileCheck %s --check-prefix=YAML +// + YAML: {{.+\.yaml$}} Index: test/clang-apply-replacements/Inputs/invalid-files/invalid-files.yaml === --- /dev/null +++ test/clang-apply-replacements/Inputs/invalid-files/invalid-files.yaml @@ -0,0 +1,12 @@ +--- +MainSourceFile: '' +Replacements: + - FilePath:idontexist.h +Offset: 2669 +Length: 0 +ReplacementText: ' override' + - FilePath:idontexist.h +Offset: 2669 +Length: 0 +ReplacementText: ' override' +... Index: clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp === --- clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp +++ clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp @@ -289,9 +289,11 @@ // Use the file manager to deduplicate paths. FileEntries are // automatically canonicalized. const FileEntry *Entry = SM.getFileManager().getFile(R.getFilePath()); - if (!Entry && Warned.insert(R.getFilePath()).second) { -errs() << "Described file '" << R.getFilePath() - << "' doesn't exist. Ignoring...\n"; + if (!Entry) { +if (Warned.insert(R.getFilePath()).second) { + errs() << "Described file '" << R.getFilePath() + << "' doesn't exist. Ignoring...\n"; +} continue; } GroupedReplacements[Entry].push_back(R); @@ -315,9 +317,11 @@ // Use the file manager to deduplicate paths. FileEntries are // automatically canonicalized. const FileEntry *Entry = SM.getFileManager().getFile(R.getFilePath()); - if (!Entry && Warned.insert(R.getFilePath()).second) { -errs() << "Described file '" << R.getFilePath() - << "' doesn't exist. Ignoring...\n"; + if (!Entry) { +if (Warned.insert(R.getFilePath()).second) { + errs() << "Described file '" << R.getFilePath() + << "' doesn't exist. Ignoring...\n"; +} continue; } GroupedReplacements[Entry].push_back(R); Index: test/clang-apply-replacements/invalid-files.cpp === --- /dev/null +++ test/clang-apply-replacements/invalid-files.cpp @@ -0,0 +1,7 @@ +// RUN: mkdir -p %T/Inputs/invalid-files +// RUN: clang-apply-replacements %T/Inputs/invalid-files +// +// Check that the yaml files are *not* deleted after running clang-apply-replacements without remove-change-desc-files. +// RUN: ls -1 %T/Inputs/invalid-files | FileCheck %s --check-prefix=YAML +// + YAML: {{.+\.yaml$}} Index: test/clang-apply-replacements/Inputs/invalid-files/invalid-files.yaml === --- /dev/null +++ test/clang-apply-replacements/Inputs/invalid-files/invalid-files.yaml @@ -0,0 +1,12 @@ +--- +MainSourceFile: '' +Replacements: + - FilePath:idontexist.h +Offset: 2669 +Length: 0 +ReplacementText: ' override' + - FilePath:idontexist.h +Offset: 2669 +Length: 0 +ReplacementText: ' override' +... Index: clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp === --- clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp +++ clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp @@ -289,9 +289,11 @@ // Use the file manager to deduplicate paths. FileEntries are // automatically canonicalized. const FileEntry *Entry = SM.getFileManager().getFile(R.getFilePath()); - if (!Entry && Warned.insert(R.getFilePath()).second) { -errs() << "Described file '" << R.getFilePath() - << "' doesn't exist. Ignoring...\n"; + if (!Entry) { +if (Warned.insert(R.getFilePath()).second) { + errs() << "Described file '" << R.getFilePath() + << "' doesn't exist. Ignoring...\n"; +} continue; }
[PATCH] D35194: [clang-tidy] clang-apply-replacements: Don't insert null entry
kfunk updated this revision to Diff 105928. kfunk added a comment. Add test https://reviews.llvm.org/D35194 Files: clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp test/clang-apply-replacements/Inputs/invalid-files/invalid-files.yaml test/clang-apply-replacements/invalid-files.cpp Index: test/clang-apply-replacements/invalid-files.cpp === --- /dev/null +++ test/clang-apply-replacements/invalid-files.cpp @@ -0,0 +1,8 @@ +// RUN: mkdir -p %T/Inputs/invalid-files +// RUN: sed "s#\$(path)#%/T/Inputs/invalid-files#" %S/Inputs/invalid-files/invalid-files.yaml > %T/Inputs/invalid-files/invalid-files.yaml +// RUN: clang-apply-replacements %T/Inputs/invalid-files +// +// Check that the yaml files are *not* deleted after running clang-apply-replacements without remove-change-desc-files. +// RUN: ls -1 %T/Inputs/invalid-files | FileCheck %s --check-prefix=YAML +// + YAML: {{.+\.yaml$}} Index: test/clang-apply-replacements/Inputs/invalid-files/invalid-files.yaml === --- /dev/null +++ test/clang-apply-replacements/Inputs/invalid-files/invalid-files.yaml @@ -0,0 +1,12 @@ +--- +MainSourceFile: '' +Replacements: + - FilePath:idontexist.h +Offset: 2669 +Length: 0 +ReplacementText: ' override' + - FilePath:idontexist.h +Offset: 2669 +Length: 0 +ReplacementText: ' override' +... Index: clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp === --- clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp +++ clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp @@ -289,9 +289,11 @@ // Use the file manager to deduplicate paths. FileEntries are // automatically canonicalized. const FileEntry *Entry = SM.getFileManager().getFile(R.getFilePath()); - if (!Entry && Warned.insert(R.getFilePath()).second) { -errs() << "Described file '" << R.getFilePath() - << "' doesn't exist. Ignoring...\n"; + if (!Entry) { +if (Warned.insert(R.getFilePath()).second) { + errs() << "Described file '" << R.getFilePath() + << "' doesn't exist. Ignoring...\n"; +} continue; } GroupedReplacements[Entry].push_back(R); @@ -315,9 +317,11 @@ // Use the file manager to deduplicate paths. FileEntries are // automatically canonicalized. const FileEntry *Entry = SM.getFileManager().getFile(R.getFilePath()); - if (!Entry && Warned.insert(R.getFilePath()).second) { -errs() << "Described file '" << R.getFilePath() - << "' doesn't exist. Ignoring...\n"; + if (!Entry) { +if (Warned.insert(R.getFilePath()).second) { + errs() << "Described file '" << R.getFilePath() + << "' doesn't exist. Ignoring...\n"; +} continue; } GroupedReplacements[Entry].push_back(R); Index: test/clang-apply-replacements/invalid-files.cpp === --- /dev/null +++ test/clang-apply-replacements/invalid-files.cpp @@ -0,0 +1,8 @@ +// RUN: mkdir -p %T/Inputs/invalid-files +// RUN: sed "s#\$(path)#%/T/Inputs/invalid-files#" %S/Inputs/invalid-files/invalid-files.yaml > %T/Inputs/invalid-files/invalid-files.yaml +// RUN: clang-apply-replacements %T/Inputs/invalid-files +// +// Check that the yaml files are *not* deleted after running clang-apply-replacements without remove-change-desc-files. +// RUN: ls -1 %T/Inputs/invalid-files | FileCheck %s --check-prefix=YAML +// + YAML: {{.+\.yaml$}} Index: test/clang-apply-replacements/Inputs/invalid-files/invalid-files.yaml === --- /dev/null +++ test/clang-apply-replacements/Inputs/invalid-files/invalid-files.yaml @@ -0,0 +1,12 @@ +--- +MainSourceFile: '' +Replacements: + - FilePath:idontexist.h +Offset: 2669 +Length: 0 +ReplacementText: ' override' + - FilePath:idontexist.h +Offset: 2669 +Length: 0 +ReplacementText: ' override' +... Index: clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp === --- clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp +++ clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp @@ -289,9 +289,11 @@ // Use the file manager to deduplicate paths. FileEntries are // automatically canonicalized. const FileEntry *Entry = SM.getFileManager().getFile(R.getFilePath()); - if (!Entry && Warned.insert(R.getFilePath()).second) { -errs() << "Described file '" << R.getFilePath() - << "' doesn't exist. Ignoring...\n"; +