From 6558af9d8c39d3162de95db1bd8598ab43f64d5c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Emma=20S=C3=B6derberg?= <emma.m.soderberg@gmail.com>
Date: Mon, 25 Jan 2021 09:56:51 +0100
Subject: [PATCH] Fix inc param debug mode for circular attributes

---
 src/jastadd/incremental/IncrementalDebug.jadd | 1 +
 src/template/incremental/Debug.tt             | 4 ++++
 2 files changed, 5 insertions(+)

diff --git a/src/jastadd/incremental/IncrementalDebug.jadd b/src/jastadd/incremental/IncrementalDebug.jadd
index 47d5801a..3055f0a8 100644
--- a/src/jastadd/incremental/IncrementalDebug.jadd
+++ b/src/jastadd/incremental/IncrementalDebug.jadd
@@ -122,6 +122,7 @@ aspect IncrementalDebug {
     TemplateContext tt = templateContext();
     for (AttrDecl attr : listOfCachedAttributes()) {
       tt.bind("IsParameterized", attr.getNumParameter() > 0);
+      tt.bind("IsCircular", attr.isCircular());
       tt.bind("PrintAsObject", attr.isPrimitive() || attr.getType().equals("String"));
       tt.bind("AttrSign", attr.signature());
       res.append(tt.expand("ASTDecl.dumpCachedAttributeValue"));
diff --git a/src/template/incremental/Debug.tt b/src/template/incremental/Debug.tt
index a10cbe76..a179a966 100644
--- a/src/template/incremental/Debug.tt
+++ b/src/template/incremental/Debug.tt
@@ -139,7 +139,11 @@ if ($(AttrSign)_values != null) {
   }
 }
 $else
+$if (IsCircular)
+if ($(AttrSign)_computed == $StateClass.NON_CYCLE || $(AttrSign)_computed == state().cycle()) {
+$else
 if ($(AttrSign)_computed) {
+$endif
 $if (PrintAsObject)
   System.out.println("value(" + relativeNodeID() + ":$(AttrSign), " + $(AttrSign)_value + ")");
 $else
-- 
GitLab