Lines Matching defs:FromD
153 ChildErrorHandlingStrategy(const Decl *FromD)
154 : FromDC(dyn_cast<DeclContext>(FromD)),
155 IgnoreChildErrors(!isa<TagDecl>(FromD)) {}
243 // the `FromD` had been imported before.
245 [[nodiscard]] bool GetImportedOrCreateDecl(ToDeclT *&ToD, FromDeclT *FromD,
251 return GetImportedOrCreateSpecialDecl(ToD, OC, FromD,
258 // GetImportedOrCreateDecl<TypeAliasDecl>(ToTypedef, FromD, ...);
261 [[nodiscard]] bool GetImportedOrCreateDecl(ToDeclT *&ToD, FromDeclT *FromD,
264 return GetImportedOrCreateSpecialDecl(ToD, OC, FromD,
273 FromDeclT *FromD, Args &&...args) {
274 if (Importer.getImportDeclErrorIfAny(FromD)) {
278 ToD = cast_or_null<ToDeclT>(Importer.GetAlreadyImportedOrNull(FromD));
283 Importer.RegisterImportedDecl(FromD, ToD);
285 InitializeImportedDecl(FromD, ToD);
289 void InitializeImportedDecl(Decl *FromD, Decl *ToD) {
290 ToD->IdentifierNamespace = FromD->IdentifierNamespace;
291 if (FromD->isUsed())
293 if (FromD->isImplicit())
307 void addDeclToContexts(Decl *FromD, Decl *ToD) {
312 if (!FromD->getDescribedTemplate() &&
313 FromD->getFriendObjectKind() == Decl::FOK_None)
318 DeclContext *FromDC = FromD->getDeclContext();
319 DeclContext *FromLexicalDC = FromD->getLexicalDeclContext();
324 if (FromDC->containsDeclAndLoad(FromD)) {
328 if (ToDC != ToLexicalDC && FromLexicalDC->containsDeclAndLoad(FromD)) {
336 if (auto *FromNamed = dyn_cast<NamedDecl>(FromD)) {
419 Error ImportDefinitionIfNeeded(Decl *FromD, Decl *ToD = nullptr);
486 Error ImportTemplateParameterLists(const DeclTy *FromD, DeclTy *ToD);
962 for (Decl *FromD : DG) {
963 if (auto ToDOrErr = import(FromD))
2001 Error ASTNodeImporter::ImportDefinitionIfNeeded(Decl *FromD, Decl *ToD) {
2002 if (!FromD)
2006 if (Error Err = importInto(ToD, FromD))
2009 if (RecordDecl *FromRecord = dyn_cast<RecordDecl>(FromD)) {
2020 if (EnumDecl *FromEnum = dyn_cast<EnumDecl>(FromD)) {
2222 Decl *FromD, DeclContext *&ToDC, DeclContext *&ToLexicalDC) {
2223 auto ToDCOrErr = Importer.ImportContext(FromD->getDeclContext());
2228 if (FromD->getDeclContext() != FromD->getLexicalDeclContext()) {
2230 FromD->getLexicalDeclContext());
3393 Error ASTNodeImporter::ImportTemplateParameterLists(const DeclTy *FromD,
3395 unsigned int Num = FromD->getNumTemplateParameterLists();
3401 import(FromD->getTemplateParameterList(I)))
9123 Expected<Decl *> ASTImporter::ImportImpl(Decl *FromD) {
9126 return Importer.Visit(FromD);
9129 void ASTImporter::RegisterImportedDecl(Decl *FromD, Decl *ToD) {
9130 MapImported(FromD, ToD);
9477 Decl *ASTImporter::GetAlreadyImportedOrNull(const Decl *FromD) const {
9478 return ImportedDecls.lookup(FromD);
9488 Expected<Decl *> ASTImporter::Import(Decl *FromD) {
9489 if (!FromD)
9492 // Push FromD to the stack, and remove that when we return.
9493 ImportPath.push(FromD);
9499 if (auto Error = getImportDeclErrorIfAny(FromD))
9503 Decl *ToD = GetAlreadyImportedOrNull(FromD);
9507 setImportDeclError(FromD, *Error);
9511 // If FromD has some updated flags after last import, apply it.
9512 updateFlags(FromD, ToD);
9516 SavedImportPaths[FromD].push_back(ImportPath.copyCycleAtBack());
9521 ExpectedDecl ToDOrErr = ImportImpl(FromD);
9525 auto Pos = ImportedDecls.find(FromD);
9563 setImportDeclError(FromD, ErrOut);
9570 for (const auto &Path : SavedImportPaths[FromD]) {
9573 Decl *PrevFromDi = FromD;
9575 // Begin and end of the path equals 'FromD', skip it.
9576 if (FromDi == FromD)
9594 SavedImportPaths.erase(FromD);
9607 auto Err = getImportDeclErrorIfAny(FromD);
9616 setImportDeclError(FromD, *Error);
9620 assert(ImportedDecls.count(FromD) != 0 && "Missing call to MapImported?");
9622 if (FromD->hasAttrs())
9623 for (const Attr *FromAttr : FromD->getAttrs()) {
9632 Imported(FromD, ToD);
9634 updateFlags(FromD, ToD);
9635 SavedImportPaths.erase(FromD);
10551 ASTImporter::getImportDeclErrorIfAny(Decl *FromD) const {
10552 auto Pos = ImportDeclErrors.find(FromD);