@@ -40,20 +40,22 @@ std::string_view getTypeKindStr(const swift::TypeBase* type) {
4040
4141template <typename E>
4242UntypedTrapLabel SwiftMangler::fetch (E&& e) {
43- return dispatcher.fetchLabel (std::forward<E>(e));
43+ auto ret = dispatcher.fetchLabel (std::forward<E>(e));
44+ // TODO use a generic logging handle for Swift entities here, once it's available
45+ CODEQL_ASSERT (ret.valid (), " using an undefined label in mangling" );
46+ return ret;
4447}
4548
4649SwiftMangledName SwiftMangler::initMangled (const swift::TypeBase* type) {
47- return SwiftMangledName () << getTypeKindStr (type) << ' _' ;
50+ return { getTypeKindStr (type), ' _' } ;
4851}
4952
5053SwiftMangledName SwiftMangler::initMangled (const swift::Decl* decl) {
51- return SwiftMangledName () << swift::Decl::getKindName (decl->getKind ()) << " Decl_"
52- << fetch (getParent (decl));
54+ return {swift::Decl::getKindName (decl->getKind ()), " Decl_" , fetch (getParent (decl))};
5355}
5456
5557SwiftMangledName SwiftMangler::mangleModuleName (std::string_view name) {
56- return SwiftMangledName () << " ModuleDecl_" << name;
58+ return { " ModuleDecl_" , name} ;
5759}
5860
5961SwiftMangledName SwiftMangler::visitModuleDecl (const swift::ModuleDecl* decl) {
@@ -124,10 +126,12 @@ unsigned SwiftMangler::getExtensionIndex(const swift::ExtensionDecl* decl,
124126 } else if (auto iterableParent = llvm::dyn_cast<swift::IterableDeclContext>(parent)) {
125127 indexExtensions (iterableParent->getAllMembers ());
126128 } else {
127- assert (false && " non-local context must be module or iterable decl context" );
129+ // TODO use a generic logging handle for Swift entities here, once it's available
130+ CODEQL_ASSERT (false , " non-local context must be module or iterable decl context" );
128131 }
129132 auto found = preloadedExtensionIndexes.extract (decl);
130- assert (found && " extension not found within parent" );
133+ // TODO use a generic logging handle for Swift entities here, once it's available
134+ CODEQL_ASSERT (found, " extension not found within parent" );
131135 return found.mapped ();
132136}
133137
@@ -141,32 +145,17 @@ void SwiftMangler::indexExtensions(llvm::ArrayRef<swift::Decl*> siblings) {
141145 }
142146}
143147
144- SwiftMangledName SwiftMangler::visitGenericTypeDecl (const swift::GenericTypeDecl* decl) {
145- auto ret = visitValueDecl (decl);
146- if (!ret) {
147- return {};
148- }
149- if (auto genericParams = decl->getParsedGenericParams ()) {
150- ret << ' <' << genericParams->size () << ' >' ;
151- }
152- return ret;
153- }
154-
155148SwiftMangledName SwiftMangler::visitAbstractTypeParamDecl (
156149 const swift::AbstractTypeParamDecl* decl) {
157150 return visitValueDecl (decl, /* force */ true );
158151}
159152
160153SwiftMangledName SwiftMangler::visitGenericTypeParamDecl (const swift::GenericTypeParamDecl* decl) {
161- auto ret = visitAbstractTypeParamDecl (decl);
162- ret << ' _' << decl->getDepth () << ' _' << decl->getIndex ();
163- return ret;
154+ return visitAbstractTypeParamDecl (decl) << ' _' << decl->getDepth () << ' _' << decl->getIndex ();
164155}
165156
166157SwiftMangledName SwiftMangler::visitModuleType (const swift::ModuleType* type) {
167- auto ret = initMangled (type);
168- ret << fetch (type->getModule ());
169- return ret;
158+ return initMangled (type) << fetch (type->getModule ());
170159}
171160
172161SwiftMangledName SwiftMangler::visitTupleType (const swift::TupleType* type) {
0 commit comments