@@ -698,6 +698,7 @@ namespace clang {
698698 ExpectedStmt VisitConceptSpecializationExpr (ConceptSpecializationExpr* E);
699699 ExpectedStmt
700700 VisitSubstNonTypeTemplateParmPackExpr (SubstNonTypeTemplateParmPackExpr *E);
701+ ExpectedStmt VisitPseudoObjectExpr (PseudoObjectExpr *E);
701702
702703 // Helper for chaining together multiple imports. If an error is detected,
703704 // subsequent imports will return default constructed nodes, so that failure
@@ -9290,6 +9291,21 @@ ExpectedStmt ASTNodeImporter::VisitSubstNonTypeTemplateParmPackExpr(
92909291 E->getIndex (), E->getFinal ());
92919292}
92929293
9294+ ExpectedStmt ASTNodeImporter::VisitPseudoObjectExpr (PseudoObjectExpr *E) {
9295+ SmallVector<Expr *, 4 > ToSemantics (E->getNumSemanticExprs ());
9296+ if (Error Err = ImportContainerChecked (E->semantics (), ToSemantics))
9297+ return std::move (Err);
9298+ Expr *ToSynt = nullptr ;
9299+ if (const Expr *FromSynt = E->getSyntacticForm ()) {
9300+ if (auto ToSyntOrErr = import (FromSynt))
9301+ ToSynt = *ToSyntOrErr;
9302+ else
9303+ return ToSyntOrErr.takeError ();
9304+ }
9305+ return PseudoObjectExpr::Create (Importer.getToContext (), ToSynt, ToSemantics,
9306+ E->getResultExprIndex ());
9307+ }
9308+
92939309Error ASTNodeImporter::ImportOverriddenMethods (CXXMethodDecl *ToMethod,
92949310 CXXMethodDecl *FromMethod) {
92959311 Error ImportErrors = Error::success ();
0 commit comments