[PATCH] D27180: Testbed and skeleton of a new expression parser
Aleksei Sidorin via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Nov 29 09:05:44 PST 2016
a.sidorin added a comment.
That's excellent. Thank you for this work, Sean!
================
Comment at: tools/clang-import-test/CMakeLists.txt:19
+ )
\ No newline at end of file
----------------
Please add a newline here.
================
Comment at: tools/clang-import-test/clang-import-test.cpp:106
+
+ const char *LineEnd = nullptr;
+
----------------
How about something like this:
```
StringRef Remain(LineBegin, Buffer->getBufferEnd() - LineBegin);
size_t EndPos = Remain.find_first_of("\r\n");
StringRef Line = (EndPos == StringRef::npos) ? Remain : StringRef(LineBegin, EndPos);
llvm::errs() << Line << "\n";
llvm::errs().indent(LocColumn) << "^\n";
```
?
================
Comment at: tools/clang-import-test/clang-import-test.cpp:115
+
+ fprintf(stderr, "%s\n", LineString.c_str());
+ std::string Space(LocColumn, ' ');
----------------
Why do we use `fprintf` instead of `llvm::errs()`?
================
Comment at: tools/clang-import-test/clang-import-test.cpp:130
+
+ SmallVector<char, 16> DiagText;
+ Info.FormatDiagnostic(DiagText);
----------------
SmallString? So, you will not need to push_back.
================
Comment at: tools/clang-import-test/clang-import-test.cpp:143
+ if (!Invalid) {
+ llvm::errs() << Ref.str().c_str() << '\n';
+ }
----------------
No need in `c_str()` here.
================
Comment at: tools/clang-import-test/clang-import-test.cpp:152
+class TestExternalASTSource : public ExternalASTSource {
+private: llvm::ArrayRef<CompilerInstance *> ImportCIs;
+ std::map<CompilerInstance *, std::unique_ptr<ASTImporter>> ForwardImporters;
----------------
Please add a newline here.
================
Comment at: tools/clang-import-test/clang-import-test.cpp:162
+ const bool MinimalImport = true;
+ ForwardImporters.emplace(std::make_pair(
+ ImportCI,
----------------
`ForwardImporters[ImportCI] = ...llvm::make_unique<>`?
================
Comment at: tools/clang-import-test/clang-import-test.cpp:179
+ DeclarationName Name) override {
+ std::vector<NamedDecl *> Decls;
+
----------------
SmallVector?
================
Comment at: tools/clang-import-test/clang-import-test.cpp:181
+
+ if (llvm::isa<TranslationUnitDecl>(DC)) {
+ for (CompilerInstance *I : ImportCIs) {
----------------
In LLVM code, qualifiers for llvm-style casts are not commonly used.
================
Comment at: tools/clang-import-test/clang-import-test.cpp:222
+ SmallVectorImpl<Decl *> &Result) override {
+
+ }
----------------
Extra spaces.
================
Comment at: tools/clang-import-test/clang-import-test.cpp:236
+ std::transform(ClangArgs.begin(), ClangArgs.end(), ClangArgv.begin(),
+ [](std::string &s) -> const char * { return s.data(); });
+
----------------
`[](const std::string &s)`
================
Comment at: tools/clang-import-test/clang-import-test.cpp:238
+
+ CompilerInvocation::CreateFromArgs(*Inv, ClangArgv.data(),
+ &ClangArgv.data()[ClangArgv.size()],
----------------
`ClangArgv.begin(), ClangArgv.end()`
================
Comment at: tools/clang-import-test/clang-import-test.cpp:327
+}
+}
+
----------------
// end namespace
Repository:
rL LLVM
https://reviews.llvm.org/D27180
More information about the cfe-commits
mailing list