1 //===-- APINotesTypes.cpp - API Notes Data Types ----------------*- C++ -*-===//
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 #include "clang/APINotes/Types.h"
10 #include "llvm/Support/raw_ostream.h"
14 LLVM_DUMP_METHOD
void CommonEntityInfo::dump(llvm::raw_ostream
&OS
) const {
16 OS
<< "[Unavailable] (" << UnavailableMsg
<< ")" << ' ';
17 if (UnavailableInSwift
)
18 OS
<< "[UnavailableInSwift] ";
19 if (SwiftPrivateSpecified
)
20 OS
<< (SwiftPrivate
? "[SwiftPrivate] " : "");
21 if (!SwiftName
.empty())
22 OS
<< "Swift Name: " << SwiftName
<< ' ';
26 LLVM_DUMP_METHOD
void CommonTypeInfo::dump(llvm::raw_ostream
&OS
) const {
27 static_cast<const CommonEntityInfo
&>(*this).dump(OS
);
29 OS
<< "Swift Briged Type: " << *SwiftBridge
<< ' ';
31 OS
<< "NSError Domain: " << *NSErrorDomain
<< ' ';
35 LLVM_DUMP_METHOD
void ContextInfo::dump(llvm::raw_ostream
&OS
) {
36 static_cast<CommonTypeInfo
&>(*this).dump(OS
);
37 if (HasDefaultNullability
)
38 OS
<< "DefaultNullability: " << DefaultNullability
<< ' ';
39 if (HasDesignatedInits
)
40 OS
<< "[HasDesignatedInits] ";
41 if (SwiftImportAsNonGenericSpecified
)
42 OS
<< (SwiftImportAsNonGeneric
? "[SwiftImportAsNonGeneric] " : "");
43 if (SwiftObjCMembersSpecified
)
44 OS
<< (SwiftObjCMembers
? "[SwiftObjCMembers] " : "");
48 LLVM_DUMP_METHOD
void VariableInfo::dump(llvm::raw_ostream
&OS
) const {
49 static_cast<const CommonEntityInfo
&>(*this).dump(OS
);
50 if (NullabilityAudited
)
51 OS
<< "Audited Nullability: " << Nullable
<< ' ';
53 OS
<< "C Type: " << Type
<< ' ';
57 LLVM_DUMP_METHOD
void ObjCPropertyInfo::dump(llvm::raw_ostream
&OS
) const {
58 static_cast<const VariableInfo
&>(*this).dump(OS
);
59 if (SwiftImportAsAccessorsSpecified
)
60 OS
<< (SwiftImportAsAccessors
? "[SwiftImportAsAccessors] " : "");
64 LLVM_DUMP_METHOD
void ParamInfo::dump(llvm::raw_ostream
&OS
) const {
65 static_cast<const VariableInfo
&>(*this).dump(OS
);
66 if (NoEscapeSpecified
)
67 OS
<< (NoEscape
? "[NoEscape] " : "");
68 if (LifetimeboundSpecified
)
69 OS
<< (Lifetimebound
? "[Lifetimebound] " : "");
70 OS
<< "RawRetainCountConvention: " << RawRetainCountConvention
<< ' ';
74 LLVM_DUMP_METHOD
void FunctionInfo::dump(llvm::raw_ostream
&OS
) const {
75 static_cast<const CommonEntityInfo
&>(*this).dump(OS
);
76 OS
<< (NullabilityAudited
? "[NullabilityAudited] " : "")
77 << "RawRetainCountConvention: " << RawRetainCountConvention
<< ' ';
78 if (!ResultType
.empty())
79 OS
<< "Result Type: " << ResultType
<< ' ';
82 for (auto &PI
: Params
)
86 LLVM_DUMP_METHOD
void ObjCMethodInfo::dump(llvm::raw_ostream
&OS
) {
87 static_cast<FunctionInfo
&>(*this).dump(OS
);
90 OS
<< (DesignatedInit
? "[DesignatedInit] " : "")
91 << (RequiredInit
? "[RequiredInit] " : "") << '\n';
94 LLVM_DUMP_METHOD
void CXXMethodInfo::dump(llvm::raw_ostream
&OS
) {
95 static_cast<FunctionInfo
&>(*this).dump(OS
);
100 LLVM_DUMP_METHOD
void TagInfo::dump(llvm::raw_ostream
&OS
) {
101 static_cast<CommonTypeInfo
&>(*this).dump(OS
);
103 OS
<< (IsFlagEnum
? "[FlagEnum] " : "");
104 if (EnumExtensibility
)
105 OS
<< "Enum Extensibility: " << static_cast<long>(*EnumExtensibility
)
107 if (SwiftCopyableSpecified
)
108 OS
<< (SwiftCopyable
? "[SwiftCopyable] " : "[~SwiftCopyable]");
109 if (SwiftEscapableSpecified
)
110 OS
<< (SwiftEscapable
? "[SwiftEscapable] " : "[~SwiftEscapable]");
114 LLVM_DUMP_METHOD
void TypedefInfo::dump(llvm::raw_ostream
&OS
) const {
115 static_cast<const CommonTypeInfo
&>(*this).dump(OS
);
117 OS
<< "Swift Type: " << static_cast<long>(*SwiftWrapper
) << ' ';
120 } // namespace api_notes