MandatoryInlinedLocation MandatoryInlinedLocation::getMandatoryInlinedLocation(SILLocation L) { if (Expr *E = L.getAsASTNode<Expr>()) return MandatoryInlinedLocation(E, L.getSpecialFlags()); if (Stmt *S = L.getAsASTNode<Stmt>()) return MandatoryInlinedLocation(S, L.getSpecialFlags()); if (Pattern *P = L.getAsASTNode<Pattern>()) return MandatoryInlinedLocation(P, L.getSpecialFlags()); if (Decl *D = L.getAsASTNode<Decl>()) return MandatoryInlinedLocation(D, L.getSpecialFlags()); if (L.isSILFile()) return MandatoryInlinedLocation(L.Loc.SILFileLoc, L.getSpecialFlags()); if (L.isInTopLevel()) return MandatoryInlinedLocation::getModuleLocation(L.getSpecialFlags()); llvm_unreachable("Cannot construct Inlined loc from the given location."); }
InlinedLocation InlinedLocation::getInlinedLocation(SILLocation L) { if (Expr *E = L.getAsASTNode<Expr>()) return InlinedLocation(E, L.getSpecialFlags()); if (Stmt *S = L.getAsASTNode<Stmt>()) return InlinedLocation(S, L.getSpecialFlags()); if (Pattern *P = L.getAsASTNode<Pattern>()) return InlinedLocation(P, L.getSpecialFlags()); if (Decl *D = L.getAsASTNode<Decl>()) return InlinedLocation(D, L.getSpecialFlags()); if (L.hasSILFileSourceLoc()) return InlinedLocation(L.getSILFileSourceLoc(), L.getSpecialFlags()); if (L.isInTopLevel()) return InlinedLocation::getModuleLocation(L.getSpecialFlags()); if (L.isAutoGenerated()) { InlinedLocation IL; IL.markAutoGenerated(); return IL; } llvm_unreachable("Cannot construct Inlined loc from the given location."); }