[PATCH] D98951: [clang][ASTImporter] Add import API for 'const Type *' (NFC).

2021-03-22 Thread Shafik Yaghmour via Phabricator via cfe-commits
shafik added a comment.

Thank you for adding the test!


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D98951/new/

https://reviews.llvm.org/D98951

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


[PATCH] D98951: [clang][ASTImporter] Add import API for 'const Type *' (NFC).

2021-03-22 Thread Balázs Kéri via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes.
Closed by commit rGce9bade1f2c6: [clang][ASTImporter] Add import API for 
const Type * (NFC). (authored by balazske).

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D98951/new/

https://reviews.llvm.org/D98951

Files:
  clang/include/clang/AST/ASTImporter.h
  clang/lib/AST/ASTImporter.cpp


Index: clang/lib/AST/ASTImporter.cpp
===
--- clang/lib/AST/ASTImporter.cpp
+++ clang/lib/AST/ASTImporter.cpp
@@ -8168,28 +8168,37 @@
   return make_error(ImportError::UnsupportedConstruct);
 }
 
-Expected ASTImporter::Import(QualType FromT) {
-  if (FromT.isNull())
-return QualType{};
-
-  const Type *FromTy = FromT.getTypePtr();
+Expected ASTImporter::Import(const Type *FromT) {
+  if (!FromT)
+return FromT;
 
   // Check whether we've already imported this type.
-  llvm::DenseMap::iterator Pos
-= ImportedTypes.find(FromTy);
+  llvm::DenseMap::iterator Pos =
+  ImportedTypes.find(FromT);
   if (Pos != ImportedTypes.end())
-return ToContext.getQualifiedType(Pos->second, FromT.getLocalQualifiers());
+return Pos->second;
 
   // Import the type
   ASTNodeImporter Importer(*this);
-  ExpectedType ToTOrErr = Importer.Visit(FromTy);
+  ExpectedType ToTOrErr = Importer.Visit(FromT);
   if (!ToTOrErr)
 return ToTOrErr.takeError();
 
   // Record the imported type.
-  ImportedTypes[FromTy] = (*ToTOrErr).getTypePtr();
+  ImportedTypes[FromT] = ToTOrErr->getTypePtr();
+
+  return ToTOrErr->getTypePtr();
+}
+
+Expected ASTImporter::Import(QualType FromT) {
+  if (FromT.isNull())
+return QualType{};
+
+  Expected ToTyOrErr = Import(FromT.getTypePtr());
+  if (!ToTyOrErr)
+return ToTyOrErr.takeError();
 
-  return ToContext.getQualifiedType(*ToTOrErr, FromT.getLocalQualifiers());
+  return ToContext.getQualifiedType(*ToTyOrErr, FromT.getLocalQualifiers());
 }
 
 Expected ASTImporter::Import(TypeSourceInfo *FromTSI) {
Index: clang/include/clang/AST/ASTImporter.h
===
--- clang/include/clang/AST/ASTImporter.h
+++ clang/include/clang/AST/ASTImporter.h
@@ -344,6 +344,12 @@
 Import(ExprWithCleanups::CleanupObject From);
 
 /// Import the given type from the "from" context into the "to"
+/// context.
+///
+/// \returns The equivalent type in the "to" context, or the import error.
+llvm::Expected Import(const Type *FromT);
+
+/// Import the given qualified type from the "from" context into the "to"
 /// context. A null type is imported as a null type (no error).
 ///
 /// \returns The equivalent type in the "to" context, or the import error.


Index: clang/lib/AST/ASTImporter.cpp
===
--- clang/lib/AST/ASTImporter.cpp
+++ clang/lib/AST/ASTImporter.cpp
@@ -8168,28 +8168,37 @@
   return make_error(ImportError::UnsupportedConstruct);
 }
 
-Expected ASTImporter::Import(QualType FromT) {
-  if (FromT.isNull())
-return QualType{};
-
-  const Type *FromTy = FromT.getTypePtr();
+Expected ASTImporter::Import(const Type *FromT) {
+  if (!FromT)
+return FromT;
 
   // Check whether we've already imported this type.
-  llvm::DenseMap::iterator Pos
-= ImportedTypes.find(FromTy);
+  llvm::DenseMap::iterator Pos =
+  ImportedTypes.find(FromT);
   if (Pos != ImportedTypes.end())
-return ToContext.getQualifiedType(Pos->second, FromT.getLocalQualifiers());
+return Pos->second;
 
   // Import the type
   ASTNodeImporter Importer(*this);
-  ExpectedType ToTOrErr = Importer.Visit(FromTy);
+  ExpectedType ToTOrErr = Importer.Visit(FromT);
   if (!ToTOrErr)
 return ToTOrErr.takeError();
 
   // Record the imported type.
-  ImportedTypes[FromTy] = (*ToTOrErr).getTypePtr();
+  ImportedTypes[FromT] = ToTOrErr->getTypePtr();
+
+  return ToTOrErr->getTypePtr();
+}
+
+Expected ASTImporter::Import(QualType FromT) {
+  if (FromT.isNull())
+return QualType{};
+
+  Expected ToTyOrErr = Import(FromT.getTypePtr());
+  if (!ToTyOrErr)
+return ToTyOrErr.takeError();
 
-  return ToContext.getQualifiedType(*ToTOrErr, FromT.getLocalQualifiers());
+  return ToContext.getQualifiedType(*ToTyOrErr, FromT.getLocalQualifiers());
 }
 
 Expected ASTImporter::Import(TypeSourceInfo *FromTSI) {
Index: clang/include/clang/AST/ASTImporter.h
===
--- clang/include/clang/AST/ASTImporter.h
+++ clang/include/clang/AST/ASTImporter.h
@@ -344,6 +344,12 @@
 Import(ExprWithCleanups::CleanupObject From);
 
 /// Import the given type from the "from" context into the "to"
+/// context.
+///
+/// \returns The equivalent type in the "to" context, or the import error.
+llvm::Expected Import(const Type *FromT);
+
+/// Import the given qualified type from the "from" context into the "to"
 /// 

[PATCH] D98951: [clang][ASTImporter] Add import API for 'const Type *' (NFC).

2021-03-22 Thread Gabor Marton via Phabricator via cfe-commits
martong accepted this revision.
martong added a comment.
Herald added a subscriber: rnkovacs.

LG! Thanks!


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D98951/new/

https://reviews.llvm.org/D98951

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


[PATCH] D98951: [clang][ASTImporter] Add import API for 'const Type *' (NFC).

2021-03-22 Thread Balázs Kéri via Phabricator via cfe-commits
balazske added a comment.

In D98951#2637807 , @shafik wrote:

> Can we add a test for the `getCapturedVLAType` case?

The test is added here: D99062 


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D98951/new/

https://reviews.llvm.org/D98951

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


[PATCH] D98951: [clang][ASTImporter] Add import API for 'const Type *' (NFC).

2021-03-19 Thread Shafik Yaghmour via Phabricator via cfe-commits
shafik accepted this revision.
shafik added a comment.

Can we add a test for the `getCapturedVLAType` case?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D98951/new/

https://reviews.llvm.org/D98951

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


[PATCH] D98951: [clang][ASTImporter] Add import API for 'const Type *' (NFC).

2021-03-19 Thread Raphael Isemann via Phabricator via cfe-commits
teemperor accepted this revision.
teemperor added a comment.
This revision is now accepted and ready to land.
Herald added a subscriber: whisperity.

LGTM, thanks!


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D98951/new/

https://reviews.llvm.org/D98951

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