diff --git a/src/jastadd/ast/Trace.jrag b/src/jastadd/ast/Trace.jrag index f23bed3060b9e327762183ec346c0d985f566d44..b22c6cc053d6bfd7b21cb2851695b2a64617c546 100644 --- a/src/jastadd/ast/Trace.jrag +++ b/src/jastadd/ast/Trace.jrag @@ -100,7 +100,7 @@ aspect Trace { syn String AttrDecl.traceEndAttr() = trace("end " + traceSignature()); syn String AttrDecl.traceEndCachedAttr() = trace("end cached " + traceSignature()); - syn String CollEq.getConditionStringified() = getCondition().replace("\n", " ").replace("\"", "\\\""); + syn String CollEq.escapeConditionForTemplate() = getCondition().replace("\n", " ").replace("\"", "\\\""); } aspect NewTrace { diff --git a/src/template/ast/Collections.tt b/src/template/ast/Collections.tt index 64db435bf2393636f842af3867df431a6cd64dc1..0e043c525c0a33fd6cf1f069cb8f34c9d7c4932a 100644 --- a/src/template/ast/Collections.tt +++ b/src/template/ast/Collections.tt @@ -238,11 +238,9 @@ CollEq.contributeStatement [[ $if(#hasCondition) if (#getCondition) { $include(CollEq.addValueToCollection) - $include(CollEq.traceContributionCheckMatch) } $else $include(CollEq.addValueToCollection) - $include(CollEq.traceContributionCheckMatch) $endif $include(CollEq.traceContributionCheckEnd) ]] @@ -251,9 +249,11 @@ CollEq.addValueToCollection [[ $if(#iterableValue) for (#elementType value : #getValue) { collection.$CombOp(value); + $include(CollEq.traceContributionCheckMatch) } $else collection.$CombOp(#getValue); +$include(CollEq.traceContributionCheckMatch) $endif ]] diff --git a/src/template/trace/TraceHooks.tt b/src/template/trace/TraceHooks.tt index f60e76e0b70051ed9ee40cd6b1dbd447ff448e77..e23ae7abc93e416ccfbeea99dc783da2b7464923 100644 --- a/src/template/trace/TraceHooks.tt +++ b/src/template/trace/TraceHooks.tt @@ -325,18 +325,22 @@ $endif CollEq.traceContributionCheckBegin [[ $if (TraceColl) -state().trace().contributionCheckBegin(this, "#collectionId", "#getConditionStringified"); +state().trace().contributionCheckBegin(this, "#collectionId", "#escapeConditionForTemplate"); $endif ]] CollEq.traceContributionCheckEnd [[ $if (TraceColl) -state().trace().contributionCheckEnd(this, "#collectionId", "#getConditionStringified"); +state().trace().contributionCheckEnd(this, "#collectionId", "#escapeConditionForTemplate"); $endif ]] CollEq.traceContributionCheckMatch [[ $if (TraceColl) -state().trace().contributionCheckMatch(this, "#collectionId", "#getConditionStringified", #getValue); +$if(#iterableValue) +state().trace().contributionCheckMatch(this, "#collectionId", "#escapeConditionForTemplate", value); +$else +state().trace().contributionCheckMatch(this, "#collectionId", "#escapeConditionForTemplate", #getValue); +$endif $endif ]]