1 //===-- APINotesTypes.cpp - API Notes Data Types ----------------*- C++ -*-===// 2 // 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 6 // 7 //===----------------------------------------------------------------------===// 8 9 #include "clang/APINotes/Types.h" 10 #include "llvm/Support/raw_ostream.h" 11 12 namespace clang { 13 namespace api_notes { dump(llvm::raw_ostream & OS) const14void CommonEntityInfo::dump(llvm::raw_ostream &OS) const { 15 if (Unavailable) 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 << ' '; 23 OS << '\n'; 24 } 25 dump(llvm::raw_ostream & OS) const26void CommonTypeInfo::dump(llvm::raw_ostream &OS) const { 27 static_cast<const CommonEntityInfo &>(*this).dump(OS); 28 if (SwiftBridge) 29 OS << "Swift Briged Type: " << *SwiftBridge << ' '; 30 if (NSErrorDomain) 31 OS << "NSError Domain: " << *NSErrorDomain << ' '; 32 OS << '\n'; 33 } 34 dump(llvm::raw_ostream & OS)35void 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] " : ""); 45 OS << '\n'; 46 } 47 dump(llvm::raw_ostream & OS) const48void VariableInfo::dump(llvm::raw_ostream &OS) const { 49 static_cast<const CommonEntityInfo &>(*this).dump(OS); 50 if (NullabilityAudited) 51 OS << "Audited Nullability: " << Nullable << ' '; 52 if (!Type.empty()) 53 OS << "C Type: " << Type << ' '; 54 OS << '\n'; 55 } 56 dump(llvm::raw_ostream & OS) const57void ObjCPropertyInfo::dump(llvm::raw_ostream &OS) const { 58 static_cast<const VariableInfo &>(*this).dump(OS); 59 if (SwiftImportAsAccessorsSpecified) 60 OS << (SwiftImportAsAccessors ? "[SwiftImportAsAccessors] " : ""); 61 OS << '\n'; 62 } 63 dump(llvm::raw_ostream & OS) const64void 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 << ' '; 69 OS << '\n'; 70 } 71 dump(llvm::raw_ostream & OS) const72void 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 << ' '; 78 if (!Params.empty()) 79 OS << '\n'; 80 for (auto &PI : Params) 81 PI.dump(OS); 82 } 83 dump(llvm::raw_ostream & OS)84void ObjCMethodInfo::dump(llvm::raw_ostream &OS) { 85 static_cast<FunctionInfo &>(*this).dump(OS); 86 OS << (DesignatedInit ? "[DesignatedInit] " : "") 87 << (RequiredInit ? "[RequiredInit] " : "") << '\n'; 88 } 89 dump(llvm::raw_ostream & OS)90void TagInfo::dump(llvm::raw_ostream &OS) { 91 static_cast<CommonTypeInfo &>(*this).dump(OS); 92 if (HasFlagEnum) 93 OS << (IsFlagEnum ? "[FlagEnum] " : ""); 94 if (EnumExtensibility) 95 OS << "Enum Extensibility: " << static_cast<long>(*EnumExtensibility) 96 << ' '; 97 OS << '\n'; 98 } 99 dump(llvm::raw_ostream & OS) const100void TypedefInfo::dump(llvm::raw_ostream &OS) const { 101 static_cast<const CommonTypeInfo &>(*this).dump(OS); 102 if (SwiftWrapper) 103 OS << "Swift Type: " << static_cast<long>(*SwiftWrapper) << ' '; 104 OS << '\n'; 105 } 106 } // namespace api_notes 107 } // namespace clang 108