Skip to content
Snippets Groups Projects
Commit f1200170 authored by Emma Söderberg's avatar Emma Söderberg
Browse files

Adds enter/exit to incremental construction state for circular NTAs.

Entering the construction state avoids change propagation for edits
occuring during evaluation of circular NTAs.
parent 1bd882c4
No related branches found
No related tags found
No related merge requests found
...@@ -425,7 +425,9 @@ $if(RewriteEnabled) ...@@ -425,7 +425,9 @@ $if(RewriteEnabled)
$include(ASTNode.incHookGetChildEnterEval) $include(ASTNode.incHookGetChildEnterEval)
$ASTNode rewritten = node.rewrittenNode(); $ASTNode rewritten = node.rewrittenNode();
if (rewritten != node) { if (rewritten != node) {
$include(State.incHookConstructionStart)
rewritten.setParent(this); rewritten.setParent(this);
$include(State.incHookConstructionEnd)
node = rewritten; node = rewritten;
} }
$include(ASTNode.incHookGetChildExitEval) $include(ASTNode.incHookGetChildExitEval)
......
...@@ -55,7 +55,9 @@ $endif ...@@ -55,7 +55,9 @@ $endif
#(signature)_value = $BottomValue; #(signature)_value = $BottomValue;
$if(#getNTA) $if(#getNTA)
if (#(signature)_value != null) { if (#(signature)_value != null) {
$include(State.incHookConstructionStart)
#(signature)_value.setParent(#ntaParent); #(signature)_value.setParent(#ntaParent);
$include(State.incHookConstructionEnd)
} }
$endif $endif
} }
...@@ -81,7 +83,9 @@ $endif ...@@ -81,7 +83,9 @@ $endif
#(signature)_value = new_#(signature)_value; #(signature)_value = new_#(signature)_value;
$if(#getNTA) $if(#getNTA)
if (#(signature)_value != null) { if (#(signature)_value != null) {
$include(State.incHookConstructionStart)
#(signature)_value.setParent(#ntaParent); #(signature)_value.setParent(#ntaParent);
$include(State.incHookConstructionEnd)
} }
$endif $endif
#tracePrintStartingCycle #tracePrintStartingCycle
...@@ -128,7 +132,9 @@ $endif ...@@ -128,7 +132,9 @@ $endif
#(signature)_value = new_#(signature)_value; #(signature)_value = new_#(signature)_value;
$if(#getNTA) $if(#getNTA)
if (#(signature)_value != null) { if (#(signature)_value != null) {
$include(State.incHookConstructionStart)
#(signature)_value.setParent(#ntaParent); #(signature)_value.setParent(#ntaParent);
$include(State.incHookConstructionEnd)
} }
$endif $endif
$TracePrintReturnNewValue $TracePrintReturnNewValue
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment