diff options
Diffstat (limited to 'source/slang/slang-mangle.cpp')
| -rw-r--r-- | source/slang/slang-mangle.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/source/slang/slang-mangle.cpp b/source/slang/slang-mangle.cpp index f5878cb1d..aa30eef9d 100644 --- a/source/slang/slang-mangle.cpp +++ b/source/slang/slang-mangle.cpp @@ -576,14 +576,23 @@ void emitQualifiedName(ManglingContext* context, DeclRef<Decl> declRef, bool inc } auto canonicalizedConstraints = - getCanonicalGenericConstraints(context->astBuilder, parentGenericDeclRef); + getCanonicalGenericConstraints2(context->astBuilder, parentGenericDeclRef); for (auto& constraint : canonicalizedConstraints) { - for (auto type : constraint.value) + if (constraint.value.getCount() > 0) { emitRaw(context, "C"); - emitQualifiedName(context, makeDeclRef(constraint.key), true); - emitType(context, type); + emitType(context, constraint.key); + int counter = 0; + for (auto type : constraint.value) + { + if (counter > 0) + { + emitRaw(context, "_"); + } + ++counter; + emitType(context, type); + } } } } |
