From 2128ff878b3c946ceb9d2debcd12be8f9290faa1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jesper=20=C3=96qvist?= <jesper.oqvist@cs.lth.se>
Date: Wed, 10 Feb 2021 16:49:10 +0100
Subject: [PATCH] Refactor cache dump template

Removed unnecessary variables by moving template from context ASTDecl to
AttrDecl.
---
 src/jastadd/incremental/IncrementalDebug.jadd |  8 ++-----
 src/template/incremental/Debug.tt             | 24 +++++++++----------
 2 files changed, 14 insertions(+), 18 deletions(-)

diff --git a/src/jastadd/incremental/IncrementalDebug.jadd b/src/jastadd/incremental/IncrementalDebug.jadd
index 84c90257..672e7eaa 100644
--- a/src/jastadd/incremental/IncrementalDebug.jadd
+++ b/src/jastadd/incremental/IncrementalDebug.jadd
@@ -115,14 +115,10 @@ aspect IncrementalDebug {
    */
   public String ASTDecl.genDumpAttributeValuesString() {
     StringBuffer res = new StringBuffer();
-    TemplateContext tt = templateContext();
     for (AttrDecl attr : listOfCachedAttributes()) {
-      // TODO(joqvist): use AttrDecl as template context instead.
-      tt.bind("IsParameterized", attr.getNumParameter() > 0);
-      tt.bind("SimpleCacheCheck", attr.simpleCacheCheck());
+      TemplateContext tt = attr.templateContext();
       tt.bind("PrintAsObject", attr.isPrimitive() || attr.getType().equals("String"));
-      tt.bind("AttrSign", attr.signature());
-      res.append(tt.expand("ASTDecl.dumpCachedAttributeValue"));
+      res.append(tt.expand("AttrDecl.dumpCachedAttributeValue"));
     }
     return res.toString();
   }
diff --git a/src/template/incremental/Debug.tt b/src/template/incremental/Debug.tt
index 448ea0b5..795e4cfd 100644
--- a/src/template/incremental/Debug.tt
+++ b/src/template/incremental/Debug.tt
@@ -126,29 +126,29 @@ $endif
 ]]
 
 # Generate code for dumping a cached attribute value
-ASTDecl.dumpCachedAttributeValue = [[
-$if (IsParameterized)
-if ($(AttrSign)_values != null) {
-  for (java.util.Iterator itr = $(AttrSign)_values.keySet().iterator();itr.hasNext();) {
+AttrDecl.dumpCachedAttributeValue = [[
+$if (#isParameterized)
+if (#(signature)_values != null) {
+  for (java.util.Iterator itr = #(signature)_values.keySet().iterator();itr.hasNext();) {
     Object key = (Object)itr.next();
-    Object value = $(AttrSign)_values.get(key);
-    System.out.println("value(" + relativeNodeID() + ":$(AttrSign)[" +
+    Object value = #(signature)_values.get(key);
+    System.out.println("value(" + relativeNodeID() + ":#(signature)[" +
       (key instanceof $ASTNode ? (($ASTNode) key).relativeNodeID() :
         (key instanceof java.util.List ? printParamList((java.util.List)key) : key) ) + "], " +
       (value instanceof $ASTNode ? (($ASTNode) value).relativeNodeID() : printValue(value)) + ")");
   }
 }
 $else
-  $if (SimpleCacheCheck)
-if ($(AttrSign)_computed) {
+  $if (#simpleCacheCheck)
+if (#(signature)_computed) {
   $else
-if ($(AttrSign)_computed == $StateClass.NON_CYCLE || $(AttrSign)_computed == state().cycle()) {
+if (#(signature)_computed == $StateClass.NON_CYCLE || #(signature)_computed == state().cycle()) {
   $endif
   $if (PrintAsObject)
-  System.out.println("value(" + relativeNodeID() + ":$(AttrSign), " + $(AttrSign)_value + ")");
+  System.out.println("value(" + relativeNodeID() + ":#(signature), " + #(signature)_value + ")");
   $else
-  Object obj = $(AttrSign)_value;
-  System.out.println("value(" + relativeNodeID() + ":$(AttrSign), " +
+  Object obj = #(signature)_value;
+  System.out.println("value(" + relativeNodeID() + ":#(signature), " +
     (obj instanceof $ASTNode ? (($ASTNode) obj).relativeNodeID() : obj) + ")");
   $endif
 }
-- 
GitLab