Skip to content

Commit e54f6c5

Browse files
committed
Updated processor specialisation
1 parent e66f736 commit e54f6c5

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

source/modules/soul_core/compiler/soul_ResolutionPass.h

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1879,7 +1879,6 @@ struct ResolutionPass final
18791879
return instance;
18801880

18811881
auto specialisationArgs = AST::CommaSeparatedList::getAsExpressionList (instance.specialisationArgs);
1882-
auto numArgs = specialisationArgs.size();
18831882
auto target = pool_ref<AST::ProcessorBase> (*p);
18841883

18851884
if (! validateSpecialisationArgs (specialisationArgs, target->specialisationParams))
@@ -1898,18 +1897,20 @@ struct ResolutionPass final
18981897
return instance;
18991898
}
19001899

1901-
if (target->owningInstance != nullptr || numArgs != 0)
1900+
bool requiresSpecialisation = ! target->specialisationParams.empty();
1901+
1902+
if (target->owningInstance != nullptr || requiresSpecialisation)
19021903
{
19031904
auto nameRoot = target->name.toString();
19041905

1905-
if (numArgs != 0)
1906+
if (requiresSpecialisation)
19061907
nameRoot = TokenisedPathString::join (nameRoot,
19071908
"_for_" + makeSafeIdentifierName (choc::text::replace (graph.getFullyQualifiedPath().toString(), ":", "_")
19081909
+ "_" + instance.instanceName->toString()));
19091910
auto& ns = target->getNamespace();
19101911
target = *cast<AST::ProcessorBase> (target->createClone (allocator, ns, ns.makeUniqueName (nameRoot)));
19111912

1912-
if (numArgs != 0)
1913+
if (requiresSpecialisation)
19131914
{
19141915
auto oldCloneFn = target->createClone;
19151916

0 commit comments

Comments
 (0)