Ensure dependency is tracked for nested expand macro applications

Expand macro passes the rule's input to nested macro calls.
This adds the macro input as the dependency of the rule's input.
As a result, incremental processing starts working in some cases.
This commit is contained in:
Fedor Isakov 2021-06-30 18:25:03 +02:00
parent f83757b69a
commit 2425fe933a
3 changed files with 634 additions and 807 deletions

View File

@ -11495,94 +11495,159 @@
</node>
<node concept="3clFbS" id="5itBwMbbLTi" role="3clF47">
<node concept="3clFbH" id="5itBwMbbRFu" role="3cqZAp" />
<node concept="3cpWs8" id="5itBwMbbRFP" role="3cqZAp">
<node concept="3cpWsn" id="5itBwMbbRFQ" role="3cpWs9">
<node concept="3clFbF" id="C1f6iEyDE_" role="3cqZAp">
<node concept="1rXfSq" id="C1f6iEyDEz" role="3clFbG">
<ref role="37wK5l" node="C1f6iEy$1j" resolve="expandMacro" />
<node concept="10Nm6u" id="C1f6iEyFVn" role="37wK5m" />
<node concept="37vLTw" id="C1f6iEyGJJ" role="37wK5m">
<ref role="3cqZAo" node="5itBwMbbLT4" resolve="macroConceptInput" />
</node>
<node concept="37vLTw" id="C1f6iEyIxp" role="37wK5m">
<ref role="3cqZAo" node="5itBwMbbLT6" resolve="prototypeTemplateRef" />
</node>
<node concept="37vLTw" id="C1f6iEyJPL" role="37wK5m">
<ref role="3cqZAo" node="5itBwMbbLT8" resolve="proc" />
</node>
</node>
</node>
</node>
<node concept="2AHcQZ" id="5itBwMbbLTj" role="2AJF6D">
<ref role="2AI5Lk" to="wyt6:~Override" resolve="Override" />
</node>
</node>
<node concept="2tJIrI" id="C1f6iEyyPX" role="jymVt" />
<node concept="3clFb_" id="C1f6iEy$1j" role="jymVt">
<property role="TrG5h" value="expandMacro" />
<node concept="37vLTG" id="C1f6iEy$1k" role="3clF46">
<property role="TrG5h" value="ruleInput" />
<node concept="3Tqbb2" id="C1f6iEy$1l" role="1tU5fm" />
</node>
<node concept="37vLTG" id="C1f6iEy$1m" role="3clF46">
<property role="TrG5h" value="macroConceptInput" />
<node concept="3bZ5Sz" id="C1f6iEy$1n" role="1tU5fm" />
</node>
<node concept="37vLTG" id="C1f6iEy$1o" role="3clF46">
<property role="TrG5h" value="prototypeTemplateRef" />
<node concept="3uibUv" id="C1f6iEy$1p" role="1tU5fm">
<ref role="3uigEE" to="mhbf:~SNodeReference" resolve="SNodeReference" />
</node>
</node>
<node concept="37vLTG" id="C1f6iEy$1q" role="3clF46">
<property role="TrG5h" value="proc" />
<node concept="3uibUv" id="C1f6iEy$1r" role="1tU5fm">
<ref role="3uigEE" to="82uw:~Function" resolve="Function" />
<node concept="3qUtgH" id="C1f6iEy$1s" role="11_B2D">
<node concept="16syzq" id="C1f6iEy$1t" role="3qUvdb">
<ref role="16sUi3" node="C1f6iEy$1y" resolve="T" />
</node>
</node>
<node concept="3uibUv" id="C1f6iEy$1u" role="11_B2D">
<ref role="3uigEE" to="i348:7eGEHDlc$ap" resolve="RuleBuilder" />
</node>
</node>
</node>
<node concept="3uibUv" id="C1f6iEy$1v" role="3clF45">
<ref role="3uigEE" to="i348:7eGEHDlc$ap" resolve="RuleBuilder" />
</node>
<node concept="3Tm1VV" id="C1f6iEy$1w" role="1B3o_S" />
<node concept="16euLQ" id="C1f6iEy$1y" role="16eVyc">
<property role="TrG5h" value="T" />
<node concept="3uibUv" id="C1f6iEy$1z" role="3ztrMU">
<ref role="3uigEE" to="i348:5itBwM86qUH" resolve="ExpandMacroTemplate.Token" />
</node>
</node>
<node concept="3clFbS" id="C1f6iEy$1$" role="3clF47">
<node concept="3clFbH" id="C1f6iEyBgp" role="3cqZAp" />
<node concept="3cpWs8" id="C1f6iEyAqx" role="3cqZAp">
<node concept="3cpWsn" id="C1f6iEyAqy" role="3cpWs9">
<property role="TrG5h" value="tpl" />
<node concept="3uibUv" id="5itBwMbbRFR" role="1tU5fm">
<node concept="3uibUv" id="C1f6iEyAqz" role="1tU5fm">
<ref role="3uigEE" to="i348:5itBwM75Jiy" resolve="ExpandMacroTemplate" />
<node concept="16syzq" id="5itBwMbbRFS" role="11_B2D">
<ref role="16sUi3" node="5itBwMbbLTg" resolve="T" />
<node concept="16syzq" id="C1f6iEyAq$" role="11_B2D">
<ref role="16sUi3" node="C1f6iEy$1y" resolve="T" />
</node>
</node>
<node concept="2OqwBi" id="5itBwMbbRFT" role="33vP2m">
<node concept="2OqwBi" id="zL5ZaNJjx8" role="2Oq$k0">
<node concept="37vLTw" id="5itBwMbbRFU" role="2Oq$k0">
<node concept="2OqwBi" id="C1f6iEyAq_" role="33vP2m">
<node concept="2OqwBi" id="C1f6iEyAqA" role="2Oq$k0">
<node concept="37vLTw" id="C1f6iEyAqB" role="2Oq$k0">
<ref role="3cqZAo" node="7DvO2Ma0klb" resolve="ruleProcessingSession" />
</node>
<node concept="liA8E" id="zL5ZaNJk1q" role="2OqNvi">
<node concept="liA8E" id="C1f6iEyAqC" role="2OqNvi">
<ref role="37wK5l" to="hano:7DvO2M9Icas" resolve="macroTemplates" />
</node>
</node>
<node concept="liA8E" id="5itBwMbbRFV" role="2OqNvi">
<node concept="liA8E" id="C1f6iEyAqD" role="2OqNvi">
<ref role="37wK5l" to="hano:5itBwM7W0ZG" resolve="expandMacroTemplate" />
<node concept="37vLTw" id="5itBwMbc0kX" role="37wK5m">
<ref role="3cqZAo" node="5itBwMbbLT4" resolve="macroConceptInput" />
<node concept="37vLTw" id="C1f6iEyAqE" role="37wK5m">
<ref role="3cqZAo" node="C1f6iEy$1m" resolve="macroConceptInput" />
</node>
<node concept="37vLTw" id="5itBwMbbRFZ" role="37wK5m">
<ref role="3cqZAo" node="5itBwMbbLT6" resolve="prototypeTemplateRef" />
<node concept="37vLTw" id="C1f6iEyAqF" role="37wK5m">
<ref role="3cqZAo" node="C1f6iEy$1o" resolve="prototypeTemplateRef" />
</node>
<node concept="16syzq" id="5itBwMbbRG0" role="3PaCim">
<ref role="16sUi3" node="5itBwMbbLTg" resolve="T" />
<node concept="16syzq" id="C1f6iEyAqG" role="3PaCim">
<ref role="16sUi3" node="C1f6iEy$1y" resolve="T" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbJ" id="5itBwMbbRG1" role="3cqZAp">
<node concept="3clFbS" id="5itBwMbbRG2" role="3clFbx">
<node concept="3cpWs8" id="5itBwMbbRG3" role="3cqZAp">
<node concept="3cpWsn" id="5itBwMbbRG4" role="3cpWs9">
<node concept="3clFbJ" id="C1f6iEyAqH" role="3cqZAp">
<node concept="3clFbS" id="C1f6iEyAqI" role="3clFbx">
<node concept="3cpWs8" id="C1f6iEyAqJ" role="3cqZAp">
<node concept="3cpWsn" id="C1f6iEyAqK" role="3cpWs9">
<property role="TrG5h" value="tok" />
<node concept="16syzq" id="5itBwMbbRG5" role="1tU5fm">
<ref role="16sUi3" node="5itBwMbbLTg" resolve="T" />
<node concept="16syzq" id="C1f6iEyAqL" role="1tU5fm">
<ref role="16sUi3" node="C1f6iEy$1y" resolve="T" />
</node>
<node concept="2OqwBi" id="5itBwMbbRG6" role="33vP2m">
<node concept="37vLTw" id="5itBwMbbRG7" role="2Oq$k0">
<ref role="3cqZAo" node="5itBwMbbRFQ" resolve="tpl" />
<node concept="2OqwBi" id="C1f6iEyAqM" role="33vP2m">
<node concept="37vLTw" id="C1f6iEyAqN" role="2Oq$k0">
<ref role="3cqZAo" node="C1f6iEyAqy" resolve="tpl" />
</node>
<node concept="liA8E" id="5itBwMbbRG8" role="2OqNvi">
<node concept="liA8E" id="C1f6iEyAqO" role="2OqNvi">
<ref role="37wK5l" to="i348:5ynGfcflmnr" resolve="createToken" />
<node concept="10Nm6u" id="At0yqLVvgR" role="37wK5m" />
<node concept="10Nm6u" id="5itBwMbc2Mp" role="37wK5m" />
<node concept="Xjq3P" id="5itBwMbbRGa" role="37wK5m" />
<node concept="37vLTw" id="C1f6iEyBXA" role="37wK5m">
<ref role="3cqZAo" node="C1f6iEy$1k" resolve="ruleInput" />
</node>
<node concept="10Nm6u" id="C1f6iEyAqQ" role="37wK5m" />
<node concept="Xjq3P" id="C1f6iEyAqR" role="37wK5m" />
</node>
</node>
</node>
</node>
<node concept="3cpWs6" id="5itBwMbbRGb" role="3cqZAp">
<node concept="2OqwBi" id="5itBwMbbRGc" role="3cqZAk">
<node concept="37vLTw" id="5itBwMbbRGd" role="2Oq$k0">
<ref role="3cqZAo" node="5itBwMbbLT8" resolve="proc" />
<node concept="3cpWs6" id="C1f6iEyAqS" role="3cqZAp">
<node concept="2OqwBi" id="C1f6iEyAqT" role="3cqZAk">
<node concept="37vLTw" id="C1f6iEyAqU" role="2Oq$k0">
<ref role="3cqZAo" node="C1f6iEy$1q" resolve="proc" />
</node>
<node concept="liA8E" id="5itBwMbbRGe" role="2OqNvi">
<node concept="liA8E" id="C1f6iEyAqV" role="2OqNvi">
<ref role="37wK5l" to="82uw:~Function.apply(java.lang.Object)" resolve="apply" />
<node concept="37vLTw" id="5itBwMbbRGf" role="37wK5m">
<ref role="3cqZAo" node="5itBwMbbRG4" resolve="tok" />
<node concept="37vLTw" id="C1f6iEyAqW" role="37wK5m">
<ref role="3cqZAo" node="C1f6iEyAqK" resolve="tok" />
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="5itBwMbbRGg" role="3cqZAp" />
<node concept="3clFbH" id="C1f6iEyAqX" role="3cqZAp" />
</node>
<node concept="3y3z36" id="5itBwMbbRGh" role="3clFbw">
<node concept="10Nm6u" id="5itBwMbbRGi" role="3uHU7w" />
<node concept="37vLTw" id="5itBwMbbRGj" role="3uHU7B">
<ref role="3cqZAo" node="5itBwMbbRFQ" resolve="tpl" />
<node concept="3y3z36" id="C1f6iEyAqY" role="3clFbw">
<node concept="10Nm6u" id="C1f6iEyAqZ" role="3uHU7w" />
<node concept="37vLTw" id="C1f6iEyAr0" role="3uHU7B">
<ref role="3cqZAo" node="C1f6iEyAqy" resolve="tpl" />
</node>
</node>
<node concept="9aQIb" id="5itBwMbbRGk" role="9aQIa">
<node concept="3clFbS" id="5itBwMbbRGl" role="9aQI4">
<node concept="3cpWs6" id="5itBwMbbRGm" role="3cqZAp">
<node concept="10M0yZ" id="5itBwMbbRGn" role="3cqZAk">
<ref role="3cqZAo" to="i348:5yr01fDteq2" resolve="EMPTY" />
<node concept="9aQIb" id="C1f6iEyAr1" role="9aQIa">
<node concept="3clFbS" id="C1f6iEyAr2" role="9aQI4">
<node concept="3cpWs6" id="C1f6iEyAr3" role="3cqZAp">
<node concept="10M0yZ" id="C1f6iEyAr4" role="3cqZAk">
<ref role="1PxDUh" to="i348:7eGEHDlc$ap" resolve="RuleBuilder" />
<ref role="3cqZAo" to="i348:5yr01fDteq2" resolve="EMPTY" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="2AHcQZ" id="5itBwMbbLTj" role="2AJF6D">
<node concept="2AHcQZ" id="C1f6iEy$1_" role="2AJF6D">
<ref role="2AI5Lk" to="wyt6:~Override" resolve="Override" />
</node>
</node>

View File

@ -2498,6 +2498,15 @@
<ref role="3uigEE" node="5itBwM86qUH" resolve="ExpandMacroTemplate.Token" />
</node>
</node>
<node concept="2AHcQZ" id="C1f6iEluMz" role="2AJF6D">
<ref role="2AI5Lk" to="wyt6:~Deprecated" resolve="Deprecated" />
<node concept="2B6LJw" id="C1f6iEyX7g" role="2B76xF">
<ref role="2B6OnR" to="wyt6:~Deprecated.forRemoval()" resolve="forRemoval" />
<node concept="3clFbT" id="C1f6iEyXm1" role="2B70Vg">
<property role="3clFbU" value="true" />
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="At0yqM7GVd" role="jymVt" />
<node concept="3clFb_" id="At0yqM7GUY" role="jymVt">
@ -2538,6 +2547,66 @@
<ref role="3uigEE" node="5itBwM86qUH" resolve="ExpandMacroTemplate.Token" />
</node>
</node>
<node concept="2AHcQZ" id="C1f6iEyM1v" role="2AJF6D">
<ref role="2AI5Lk" to="wyt6:~Deprecated" resolve="Deprecated" />
<node concept="2B6LJw" id="C1f6iEyXxQ" role="2B76xF">
<ref role="2B6OnR" to="wyt6:~Deprecated.forRemoval()" resolve="forRemoval" />
<node concept="3clFbT" id="C1f6iEyXK3" role="2B70Vg">
<property role="3clFbU" value="true" />
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="C1f6iEysUF" role="jymVt" />
<node concept="3clFb_" id="C1f6iEyrah" role="jymVt">
<property role="TrG5h" value="expandMacro" />
<property role="1EzhhJ" value="true" />
<node concept="37vLTG" id="C1f6iEyuh2" role="3clF46">
<property role="TrG5h" value="ruleInput" />
<node concept="3Tqbb2" id="C1f6iEyvAg" role="1tU5fm" />
</node>
<node concept="37vLTG" id="C1f6iEyrai" role="3clF46">
<property role="TrG5h" value="macroConceptInput" />
<node concept="3bZ5Sz" id="C1f6iEyraj" role="1tU5fm" />
</node>
<node concept="37vLTG" id="C1f6iEyrak" role="3clF46">
<property role="TrG5h" value="prototypeTemplateRef" />
<node concept="3uibUv" id="C1f6iEyral" role="1tU5fm">
<ref role="3uigEE" to="mhbf:~SNodeReference" resolve="SNodeReference" />
</node>
</node>
<node concept="37vLTG" id="C1f6iEyram" role="3clF46">
<property role="TrG5h" value="proc" />
<node concept="3uibUv" id="C1f6iEyran" role="1tU5fm">
<ref role="3uigEE" to="82uw:~Function" resolve="Function" />
<node concept="3qUtgH" id="C1f6iEyrao" role="11_B2D">
<node concept="16syzq" id="C1f6iEyrap" role="3qUvdb">
<ref role="16sUi3" node="C1f6iEyrau" resolve="T" />
</node>
</node>
<node concept="3uibUv" id="C1f6iEyraq" role="11_B2D">
<ref role="3uigEE" node="7eGEHDlc$ap" resolve="RuleBuilder" />
</node>
</node>
</node>
<node concept="3uibUv" id="C1f6iEyrar" role="3clF45">
<ref role="3uigEE" node="7eGEHDlc$ap" resolve="RuleBuilder" />
</node>
<node concept="3Tm1VV" id="C1f6iEyras" role="1B3o_S" />
<node concept="3clFbS" id="C1f6iEyrat" role="3clF47" />
<node concept="16euLQ" id="C1f6iEyrau" role="16eVyc">
<property role="TrG5h" value="T" />
<node concept="3uibUv" id="C1f6iEyrav" role="3ztrMU">
<ref role="3uigEE" node="5itBwM86qUH" resolve="ExpandMacroTemplate.Token" />
</node>
</node>
<node concept="P$JXv" id="C1f6iEyP_C" role="lGtFl">
<node concept="TZ5HA" id="C1f6iEyP_D" role="TZ5H$">
<node concept="1dT_AC" id="C1f6iEyP_E" role="1dT_Ay">
<property role="1dT_AB" value="Overloaded variant of the default expandMacro method accepting the concept instead of the macro input node." />
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="At0yqM7GUX" role="jymVt" />
<node concept="3clFb_" id="5itBwM7V_fy" role="jymVt">