balazske marked an inline comment as done. balazske added inline comments.
================ Comment at: clang/lib/AST/ASTImporter.cpp:7944 + if (auto ToEOrErr = Import(From->getAlignmentExpr())) + To = AlignedAttr::Create(ToContext, true, *ToEOrErr, ToRange, + FromAttr->getSyntax(), ---------------- shafik wrote: > shafik wrote: > > This call to `Create` and the one below look identical can we please > > refactor to avoid code duplication. > How about something more like, maybe I am missing a detail but hopefully not: > > ``` > bool IsAlignmentExpr=From->isAlignmentExpr(); > auto ToEOrErr = [IsAlignmentExpr]() { > if (IsAlignmentExpr) > return Import(From->getAlignmentExpr()); > > return Import(From->getAlignmentType()); > }(); > > if (!ToTOrErr) > return ToTOrErr.takeError(); > > To = AlignedAttr::Create(ToContext, IsAlignmentExpr, *ToEOrErr, ToRange, > > From->getSyntax(),From->getSemanticSpelling()); > ``` It is only possible by using a template. Importing of AlignmentExpr returns `Expected<Expr *>` and importing the AlignmentType returns `Expected<TypeSourceInfo *>`. The `ToTOrErr` and `ToEOrErr` are of different types. (The create function expects a `void *` that can be a pointer to Expr or TypeSourceInfo). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D75048/new/ https://reviews.llvm.org/D75048 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits