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 ObjCContextInfo::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 OS
<< "RawRetainCountConvention: " << RawRetainCountConvention
<< ' ';
72 LLVM_DUMP_METHOD
void FunctionInfo::dump(llvm::raw_ostream
&OS
) const {
73 static_cast<const CommonEntityInfo
&>(*this).dump(OS
);
74 OS
<< (NullabilityAudited
? "[NullabilityAudited] " : "")
75 << "RawRetainCountConvention: " << RawRetainCountConvention
<< ' ';
76 if (!ResultType
.empty())
77 OS
<< "Result Type: " << ResultType
<< ' ';
80 for (auto &PI
: Params
)
84 LLVM_DUMP_METHOD
void ObjCMethodInfo::dump(llvm::raw_ostream
&OS
) {
85 static_cast<FunctionInfo
&>(*this).dump(OS
);
86 OS
<< (DesignatedInit
? "[DesignatedInit] " : "")
87 << (RequiredInit
? "[RequiredInit] " : "") << '\n';
90 LLVM_DUMP_METHOD
void TagInfo::dump(llvm::raw_ostream
&OS
) {
91 static_cast<CommonTypeInfo
&>(*this).dump(OS
);
93 OS
<< (IsFlagEnum
? "[FlagEnum] " : "");
94 if (EnumExtensibility
)
95 OS
<< "Enum Extensibility: " << static_cast<long>(*EnumExtensibility
)
100 LLVM_DUMP_METHOD
void TypedefInfo::dump(llvm::raw_ostream
&OS
) const {
101 static_cast<const CommonTypeInfo
&>(*this).dump(OS
);
103 OS
<< "Swift Type: " << static_cast<long>(*SwiftWrapper
) << ' ';
106 } // namespace api_notes