Default DeclAttributes::getAttributes to skipping invalid attributes.

This matches the singular 'getAttribute', and all three current users
of this API were passing 'false' here anyway. No functionality change.
This commit is contained in:
Jordan Rose
2017-03-09 14:10:25 -08:00
parent 3e45121b59
commit f068ddf1e3
3 changed files with 5 additions and 6 deletions

View File

@@ -1249,7 +1249,7 @@ public:
/// Return a range with all attributes in DeclAttributes with AttrKind /// Return a range with all attributes in DeclAttributes with AttrKind
/// ATTR. /// ATTR.
template <typename ATTR, bool AllowInvalid> template <typename ATTR, bool AllowInvalid = false>
AttributeKindRange<ATTR, AllowInvalid> getAttributes() const { AttributeKindRange<ATTR, AllowInvalid> getAttributes() const {
return AttributeKindRange<ATTR, AllowInvalid>( return AttributeKindRange<ATTR, AllowInvalid>(
make_range(begin(), end()), ToAttributeKind<ATTR, AllowInvalid>()); make_range(begin(), end()), ToAttributeKind<ATTR, AllowInvalid>());

View File

@@ -757,8 +757,8 @@ namespace {
auto nominal = dyn_cast<NominalTypeDecl>(decl); auto nominal = dyn_cast<NominalTypeDecl>(decl);
if (!nominal) return nullptr; if (!nominal) return nullptr;
for (auto attr : decl->getAttrs().getAttributes<SynthesizedProtocolAttr, const DeclAttributes &allAttrs = decl->getAttrs();
false>()) { for (auto attr : allAttrs.getAttributes<SynthesizedProtocolAttr>()) {
if (attr->getProtocolKind() == if (attr->getProtocolKind() ==
KnownProtocolKind::BridgedStoredNSError) { KnownProtocolKind::BridgedStoredNSError) {
auto &ctx = nominal->getASTContext(); auto &ctx = nominal->getASTContext();

View File

@@ -376,11 +376,10 @@ SILFunction *SILModule::getOrCreateFunction(SILLocation loc,
F->setClangNodeOwner(decl); F->setClangNodeOwner(decl);
auto Attrs = decl->getAttrs(); auto Attrs = decl->getAttrs();
for (auto *A : Attrs.getAttributes<SemanticsAttr, false /*AllowInvalid*/>()) for (auto *A : Attrs.getAttributes<SemanticsAttr>())
F->addSemanticsAttr(cast<SemanticsAttr>(A)->Value); F->addSemanticsAttr(cast<SemanticsAttr>(A)->Value);
for (auto *A : for (auto *A : Attrs.getAttributes<SpecializeAttr>()) {
Attrs.getAttributes<SpecializeAttr, false /*AllowInvalid*/>()) {
auto *SA = cast<SpecializeAttr>(A); auto *SA = cast<SpecializeAttr>(A);
auto kind = SA->getSpecializationKind() == auto kind = SA->getSpecializationKind() ==
SpecializeAttr::SpecializationKind::Full SpecializeAttr::SpecializationKind::Full