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.hasSILFileSourceLoc()) return MandatoryInlinedLocation(L.getSILFileSourceLoc(), L.getSpecialFlags()); if (L.isInTopLevel()) return MandatoryInlinedLocation::getModuleLocation(L.getSpecialFlags()); llvm_unreachable("Cannot construct Inlined loc from the given location."); }