From 6b05365fd9507d396573cfd398eaec9d653ad7d6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Emma=20S=C3=B6derberg?= <emma.m.soderberg@gmail.com>
Date: Fri, 11 Dec 2020 12:54:18 +0100
Subject: [PATCH] Update coll tracing for collection contributikons and
 renaming

---
 src/jastadd/ast/Trace.jrag       |  2 +-
 src/template/ast/Collections.tt  |  4 ++--
 src/template/trace/TraceHooks.tt | 10 +++++++---
 3 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/src/jastadd/ast/Trace.jrag b/src/jastadd/ast/Trace.jrag
index f23bed30..b22c6cc0 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 64db435b..0e043c52 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 f60e76e0..e23ae7ab 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
 ]]
-- 
GitLab