3#include "llvm/ADT/STLExtras.h"
6using namespace extractapi;
11 if (
const auto *A = RD->getAttr<UnavailableAttr>()) {
12 if (!A->isImplicit()) {
13 this->Availabilities.clear();
14 UnconditionallyUnavailable =
true;
18 if (
const auto *A = RD->getAttr<DeprecatedAttr>()) {
19 if (!A->isImplicit()) {
20 this->Availabilities.clear();
21 UnconditionallyDeprecated =
true;
25 for (
const auto *
Attr : RD->specific_attrs<AvailabilityAttr>()) {
26 StringRef
Domain =
Attr->getPlatform()->getName();
31 if (Availability != Availabilities.end()) {
33 if (Availability->Introduced <
Attr->getIntroduced())
34 Availability->Introduced =
Attr->getIntroduced();
37 if (Availability->Deprecated >
Attr->getDeprecated())
38 Availability->Deprecated =
Attr->getDeprecated();
41 if (Availability->Obsoleted >
Attr->getObsoleted())
42 Availability->Obsoleted =
Attr->getObsoleted();
44 Availabilities.emplace_back(
Domain,
Attr->getIntroduced(),
45 Attr->getDeprecated(),
Attr->getObsoleted(),
46 Attr->getUnavailable());
This file defines the AvailabilityInfo struct that collects availability attributes of a symbol.
Attr - This represents one attribute.
Decl - This represents one declaration (or definition), e.g.
redecl_range redecls() const
Returns an iterator range for all the redeclarations of the same decl.