mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
SILOptimizer: Stop calling getAllConformances() on protocols
This commit is contained in:
@@ -37,10 +37,12 @@ public:
|
||||
bool walkToDeclPre(Decl *D) override {
|
||||
/// (1) Walk over all NominalTypeDecls to determine conformances.
|
||||
if (auto *NTD = dyn_cast<NominalTypeDecl>(D)) {
|
||||
auto Protocols = NTD->getAllProtocols();
|
||||
for (auto &Protocol : Protocols) {
|
||||
if (Protocol->getEffectiveAccess() <= AccessLevel::Internal) {
|
||||
ProtocolConformanceCache[Protocol].push_back(NTD);
|
||||
if (!isa<ProtocolDecl>(NTD)) {
|
||||
auto Protocols = NTD->getAllProtocols();
|
||||
for (auto &Protocol : Protocols) {
|
||||
if (Protocol->getEffectiveAccess() <= AccessLevel::Internal) {
|
||||
ProtocolConformanceCache[Protocol].push_back(NTD);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user