sepavloff added a comment.

I still cannot build project with your changes, now compiler cannot find symbol 
`hasSubStmt`. When committing the change please make sure that all 
prerequisites are committed and unit tests run successfully.

I would recommend you to take tests from http://reviews.llvm.org/D14224 for 
literals. They check imported values as well, not only syntax structure. It is 
however only a recommendation.

There is no tests for `InjectedClassNameType`, `TemplateTypeParmType`, 
`GCCAsmStmt`, `VAArgExpr` and `CXXBoolLiteralExpr`. Probably these nodes may be 
moved to next code change?

Provided that the aforementioned nodes get tests of are moved to another 
change, the patch looks good for me. I do not have authority to approve patches 
for commit, you need to ask someone with proper rights for the approval.

Thank you!


================
Comment at: lib/AST/ASTImporter.cpp:1827-1828
@@ +1826,4 @@
+
+  // FIXME: ASTContext::getInjectedClassNameType is not suitable for AST 
reading
+  // See comments in its definition for details
+  // return Importer.getToContext().getInjectedClassNameType(D, InjType);
----------------
Definition of `ASTContext::getInjectedClassNameType` does not contain comments 
that would explain why it is unsuitable, so this comment is confusing. Probably 
you wanted to reference `ASTReader::readTypeRecord`, it contains similar 
statement.

================
Comment at: lib/AST/ASTImporter.cpp:4379
@@ +4378,3 @@
+
+  // Resolve possible cyclic import
+  if (Decl *AlreadyImported = Importer.GetAlreadyImportedOrNull(D))
----------------
Comments should be proper English sentences. In this case ending period is 
missed.

================
Comment at: lib/AST/ASTImporter.cpp:4730
@@ +4729,3 @@
+  SmallVector<IdentifierInfo *, 4> Names;
+  for (unsigned i = 0, e = S->getNumOutputs(); i != e; i++) {
+    IdentifierInfo *ToII = Importer.Import(S->getOutputIdentifier(i));
----------------
According to LLVM coding style ([[ 
http://llvm.org/docs/CodingStandards.html#name-types-functions-variables-and-enumerators-properly
 ]]) variable names 'should be camel case, and start with an upper case 
letter', so `i` -> `I`, `e` -> `E`.

================
Comment at: unittests/AST/ASTImporterTest.cpp:117
@@ +116,3 @@
+                                   hasType(
+                                     asString("const char [4]")))))))));
+  EXPECT_TRUE(testImport("void declToImport() { L\"foo\"; }",
----------------
Disadvantage of using matchers, apart of complexity, is that they check only 
syntax structure. This test does not check if imported literal has proper value.


Repository:
  rL LLVM

http://reviews.llvm.org/D14286



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to