#ifndef SLANG_MANGLE_H_INCLUDED #define SLANG_MANGLE_H_INCLUDED // This file implements the name mangling scheme for the Slang language. #include "../core/slang-basic.h" #include "slang-syntax.h" namespace Slang { struct IRSpecialize; String getMangledName(ASTBuilder* astBuilder, Decl* decl); String getMangledName(ASTBuilder* astBuilder, DeclRef const & declRef); String getMangledName(ASTBuilder* astBuilder, DeclRefBase const & declRef); String getMangledNameFromNameString(const UnownedStringSlice& name); String getHashedName(const UnownedStringSlice& mangledName); String getMangledNameForConformanceWitness( ASTBuilder* astBuilder, Type* sub, Type* sup); String getMangledNameForConformanceWitness( ASTBuilder* astBuilder, DeclRef sub, DeclRef sup); String getMangledNameForConformanceWitness( ASTBuilder* astBuilder, DeclRef sub, Type* sup); String getMangledTypeName( ASTBuilder* astBuilder, Type* type); } #endif