@@ -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
@@ -9291,6 +9292,21 @@ ExpectedStmt ASTNodeImporter::VisitSubstNonTypeTemplateParmPackExpr(
92919292 E->getIndex (), E->getFinal ());
92929293}
92939294
9295+ ExpectedStmt ASTNodeImporter::VisitPseudoObjectExpr (PseudoObjectExpr *E) {
9296+ SmallVector<Expr *, 4 > ToSemantics (E->getNumSemanticExprs ());
9297+ if (Error Err = ImportContainerChecked (E->semantics (), ToSemantics))
9298+ return std::move (Err);
9299+ Expr *ToSynt = nullptr ;
9300+ if (const Expr *FromSynt = E->getSyntacticForm ()) {
9301+ if (auto ToSyntOrErr = import (FromSynt))
9302+ ToSynt = *ToSyntOrErr;
9303+ else
9304+ return ToSyntOrErr.takeError ();
9305+ }
9306+ return PseudoObjectExpr::Create (Importer.getToContext (), ToSynt, ToSemantics,
9307+ E->getResultExprIndex ());
9308+ }
9309+
92949310Error ASTNodeImporter::ImportOverriddenMethods (CXXMethodDecl *ToMethod,
92959311 CXXMethodDecl *FromMethod) {
92969312 Error ImportErrors = Error::success ();
0 commit comments