Optimize AspectLookup: avoid traversing descendants of input

This commit is contained in:
Fedor Isakov 2021-05-16 13:46:32 +02:00
parent 1d620cdd63
commit 02baab4100
1 changed files with 162 additions and 166 deletions

View File

@ -1253,7 +1253,7 @@
<node concept="3clFbS" id="7mB3viLmii3" role="3clF47">
<node concept="3cpWs8" id="7mB3viLmGMo" role="3cqZAp">
<node concept="3cpWsn" id="7mB3viLmGMp" role="3cpWs9">
<property role="TrG5h" value="imports" />
<property role="TrG5h" value="usedLangs" />
<node concept="2hMVRd" id="7mB3viLmLag" role="1tU5fm">
<node concept="3uibUv" id="7mB3viLmLai" role="2hN53Y">
<ref role="3uigEE" to="c17a:~SLanguage" resolve="SLanguage" />
@ -1269,192 +1269,188 @@
</node>
</node>
<node concept="3clFbH" id="500mE4_sIdy" role="3cqZAp" />
<node concept="3cpWs8" id="2jWRpjTyIYs" role="3cqZAp">
<node concept="3cpWsn" id="2jWRpjTyIYv" role="3cpWs9">
<property role="TrG5h" value="representativeModel" />
<node concept="H_c77" id="2jWRpjTyIYq" role="1tU5fm" />
<node concept="2OqwBi" id="2jWRpjTyIuA" role="33vP2m">
<node concept="2OqwBi" id="2jWRpjTyHOC" role="2Oq$k0">
<node concept="37vLTw" id="2jWRpjTyHlf" role="2Oq$k0">
<ref role="3cqZAo" node="7mB3viLmiiz" resolve="nodes" />
</node>
<node concept="1uHKPH" id="2jWRpjTyIma" role="2OqNvi" />
</node>
<node concept="I4A8Y" id="2jWRpjTyIHS" role="2OqNvi" />
</node>
</node>
</node>
<node concept="3clFbJ" id="500mE4_sCob" role="3cqZAp">
<node concept="3clFbS" id="500mE4_sCod" role="3clFbx">
<node concept="3clFbF" id="500mE4_sDN4" role="3cqZAp">
<node concept="2OqwBi" id="500mE4_sEiy" role="3clFbG">
<node concept="37vLTw" id="500mE4_sDN2" role="2Oq$k0">
<ref role="3cqZAo" node="7mB3viLmGMp" resolve="imports" />
</node>
<node concept="X8dFx" id="500mE4_sENY" role="2OqNvi">
<node concept="1rXfSq" id="500mE4_sFnT" role="25WWJ7">
<ref role="37wK5l" node="500mE4_soZN" resolve="usedLanguages" />
<node concept="37vLTw" id="500mE4_sGHu" role="37wK5m">
<ref role="3cqZAo" node="2jWRpjTyIYv" resolve="representativeModel" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3y3z36" id="500mE4_sD9F" role="3clFbw">
<node concept="10Nm6u" id="500mE4_sDBf" role="3uHU7w" />
<node concept="37vLTw" id="500mE4_sCG1" role="3uHU7B">
<ref role="3cqZAo" node="2jWRpjTyIYv" resolve="representativeModel" />
</node>
</node>
</node>
<node concept="1DcWWT" id="3KN3A4vEzi1" role="3cqZAp">
<node concept="3clFbS" id="3KN3A4vEzi4" role="2LFqv$">
<node concept="3clFbF" id="Q_4x90bPIt" role="3cqZAp">
<node concept="2OqwBi" id="Q_4x90bRrD" role="3clFbG">
<node concept="2OqwBi" id="Q_4x90bQ3Q" role="2Oq$k0">
<node concept="37vLTw" id="Q_4x90bPIr" role="2Oq$k0">
<node concept="3clFbJ" id="500mE4_sCob" role="3cqZAp">
<node concept="3clFbS" id="500mE4_sCod" role="3clFbx">
<node concept="3clFbF" id="500mE4_sDN4" role="3cqZAp">
<node concept="2OqwBi" id="500mE4_sEiy" role="3clFbG">
<node concept="37vLTw" id="500mE4_sDN2" role="2Oq$k0">
<ref role="3cqZAo" node="7mB3viLmGMp" resolve="usedLangs" />
</node>
<node concept="X8dFx" id="500mE4_sENY" role="2OqNvi">
<node concept="1rXfSq" id="500mE4_sFnT" role="25WWJ7">
<ref role="37wK5l" node="500mE4_soZN" resolve="usedLanguages" />
<node concept="2OqwBi" id="IFW4V3B7oM" role="37wK5m">
<node concept="37vLTw" id="IFW4V3B7oN" role="2Oq$k0">
<ref role="3cqZAo" node="3KN3A4vEzi5" resolve="node" />
</node>
<node concept="I4A8Y" id="IFW4V3B7oO" role="2OqNvi" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="IFW4V3C4lh" role="3cqZAp" />
</node>
<node concept="3y3z36" id="500mE4_sD9F" role="3clFbw">
<node concept="10Nm6u" id="500mE4_sDBf" role="3uHU7w" />
<node concept="2OqwBi" id="IFW4V3ASwF" role="3uHU7B">
<node concept="37vLTw" id="IFW4V3ASwG" role="2Oq$k0">
<ref role="3cqZAo" node="3KN3A4vEzi5" resolve="node" />
</node>
<node concept="2Rf3mk" id="Q_4x90bQbs" role="2OqNvi">
<node concept="1xIGOp" id="Q_4x90bRdf" role="1xVPHs" />
</node>
</node>
<node concept="2es0OD" id="Q_4x90bSM1" role="2OqNvi">
<node concept="1bVj0M" id="Q_4x90bSM3" role="23t8la">
<node concept="3clFbS" id="Q_4x90bSM4" role="1bW5cS">
<node concept="3clFbF" id="7mB3viLmLZG" role="3cqZAp">
<node concept="2OqwBi" id="7mB3viLmMLT" role="3clFbG">
<node concept="37vLTw" id="7mB3viLmLZE" role="2Oq$k0">
<ref role="3cqZAo" node="7mB3viLmGMp" resolve="imports" />
</node>
<node concept="TSZUe" id="7mB3viLmRQd" role="2OqNvi">
<node concept="2OqwBi" id="7mB3viLmPLf" role="25WWJ7">
<node concept="2OqwBi" id="7mB3viLmPms" role="2Oq$k0">
<node concept="2JrnkZ" id="7mB3viLmOTh" role="2Oq$k0">
<node concept="37vLTw" id="Q_4x90bTi$" role="2JrQYb">
<ref role="3cqZAo" node="Q_4x90bSM5" resolve="it" />
</node>
</node>
<node concept="liA8E" id="3KN3A4vE_b$" role="2OqNvi">
<ref role="37wK5l" to="mhbf:~SNode.getConcept()" resolve="getConcept" />
</node>
</node>
<node concept="liA8E" id="7mB3viLmQ23" role="2OqNvi">
<ref role="37wK5l" to="c17a:~SAbstractConcept.getLanguage()" resolve="getLanguage" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="Rh6nW" id="Q_4x90bSM5" role="1bW2Oz">
<property role="TrG5h" value="it" />
<node concept="2jxLKc" id="Q_4x90bSM6" role="1tU5fm" />
</node>
</node>
<node concept="I4A8Y" id="IFW4V3ASwH" role="2OqNvi" />
</node>
</node>
</node>
<node concept="3clFbF" id="6zber0NDM$4" role="3cqZAp">
<node concept="2OqwBi" id="6zber0NDQRe" role="3clFbG">
<node concept="2OqwBi" id="6zber0NWjcx" role="2Oq$k0">
<node concept="2OqwBi" id="6zber0NEDdW" role="2Oq$k0">
<node concept="2OqwBi" id="6zber0NDVGR" role="2Oq$k0">
<node concept="2OqwBi" id="6zber0NDT3R" role="2Oq$k0">
<node concept="2OqwBi" id="6zber0NDOOR" role="2Oq$k0">
<node concept="2OqwBi" id="6zber0NDMDz" role="2Oq$k0">
<node concept="37vLTw" id="6zber0NDM$2" role="2Oq$k0">
<ref role="3cqZAo" node="3KN3A4vEzi5" resolve="node" />
</node>
<node concept="2Rf3mk" id="6zber0NDMKN" role="2OqNvi">
<node concept="1xIGOp" id="6zber0NDNVs" role="1xVPHs" />
</node>
</node>
<node concept="3goQfb" id="6zber0NDQb7" role="2OqNvi">
<node concept="1bVj0M" id="6zber0NDQb9" role="23t8la">
<node concept="3clFbS" id="6zber0NDQba" role="1bW5cS">
<node concept="3clFbF" id="6zber0NDQj9" role="3cqZAp">
<node concept="2OqwBi" id="6zber0NDQvw" role="3clFbG">
<node concept="37vLTw" id="6zber0NDQj8" role="2Oq$k0">
<ref role="3cqZAo" node="6zber0NDQbb" resolve="it" />
</node>
<node concept="2z74zc" id="6zber0NDQEx" role="2OqNvi" />
</node>
</node>
</node>
<node concept="Rh6nW" id="6zber0NDQbb" role="1bW2Oz">
<property role="TrG5h" value="it" />
<node concept="2jxLKc" id="6zber0NDQbc" role="1tU5fm" />
</node>
</node>
</node>
<node concept="9aQIb" id="IFW4V3Bcfu" role="9aQIa">
<node concept="3clFbS" id="IFW4V3Bcfv" role="9aQI4">
<node concept="3clFbF" id="Q_4x90bPIt" role="3cqZAp">
<node concept="2OqwBi" id="Q_4x90bRrD" role="3clFbG">
<node concept="2OqwBi" id="Q_4x90bQ3Q" role="2Oq$k0">
<node concept="37vLTw" id="Q_4x90bPIr" role="2Oq$k0">
<ref role="3cqZAo" node="3KN3A4vEzi5" resolve="node" />
</node>
<node concept="3$u5V9" id="6zber0NDT$6" role="2OqNvi">
<node concept="1bVj0M" id="6zber0NDT$8" role="23t8la">
<node concept="3clFbS" id="6zber0NDT$9" role="1bW5cS">
<node concept="3clFbF" id="6zber0NDUq0" role="3cqZAp">
<node concept="2OqwBi" id="6zber0NDUDW" role="3clFbG">
<node concept="37vLTw" id="6zber0NDUpZ" role="2Oq$k0">
<ref role="3cqZAo" node="6zber0NDT$a" resolve="ref" />
</node>
<node concept="2ZHEkA" id="6zber0NDV9D" role="2OqNvi" />
</node>
</node>
</node>
<node concept="Rh6nW" id="6zber0NDT$a" role="1bW2Oz">
<property role="TrG5h" value="ref" />
<node concept="2jxLKc" id="6zber0NDT$b" role="1tU5fm" />
</node>
</node>
<node concept="2Rf3mk" id="Q_4x90bQbs" role="2OqNvi">
<node concept="1xIGOp" id="Q_4x90bRdf" role="1xVPHs" />
</node>
</node>
<node concept="1KnU$U" id="6zber0NDWss" role="2OqNvi" />
</node>
<node concept="3$u5V9" id="6zber0NEDYl" role="2OqNvi">
<node concept="1bVj0M" id="6zber0NEDYn" role="23t8la">
<node concept="3clFbS" id="6zber0NEDYo" role="1bW5cS">
<node concept="3clFbF" id="6zber0NEEw1" role="3cqZAp">
<node concept="2OqwBi" id="6zber0NEENi" role="3clFbG">
<node concept="37vLTw" id="6zber0NEEw0" role="2Oq$k0">
<ref role="3cqZAo" node="6zber0NEDYp" resolve="it" />
<node concept="2es0OD" id="Q_4x90bSM1" role="2OqNvi">
<node concept="1bVj0M" id="Q_4x90bSM3" role="23t8la">
<node concept="3clFbS" id="Q_4x90bSM4" role="1bW5cS">
<node concept="3clFbF" id="7mB3viLmLZG" role="3cqZAp">
<node concept="2OqwBi" id="7mB3viLmMLT" role="3clFbG">
<node concept="37vLTw" id="7mB3viLmLZE" role="2Oq$k0">
<ref role="3cqZAo" node="7mB3viLmGMp" resolve="usedLangs" />
</node>
<node concept="TSZUe" id="7mB3viLmRQd" role="2OqNvi">
<node concept="2OqwBi" id="7mB3viLmPLf" role="25WWJ7">
<node concept="2OqwBi" id="7mB3viLmPms" role="2Oq$k0">
<node concept="2JrnkZ" id="7mB3viLmOTh" role="2Oq$k0">
<node concept="37vLTw" id="Q_4x90bTi$" role="2JrQYb">
<ref role="3cqZAo" node="Q_4x90bSM5" resolve="it" />
</node>
</node>
<node concept="liA8E" id="3KN3A4vE_b$" role="2OqNvi">
<ref role="37wK5l" to="mhbf:~SNode.getConcept()" resolve="getConcept" />
</node>
</node>
<node concept="liA8E" id="7mB3viLmQ23" role="2OqNvi">
<ref role="37wK5l" to="c17a:~SAbstractConcept.getLanguage()" resolve="getLanguage" />
</node>
</node>
</node>
</node>
<node concept="I4A8Y" id="6zber0NEFaM" role="2OqNvi" />
</node>
</node>
</node>
<node concept="Rh6nW" id="6zber0NEDYp" role="1bW2Oz">
<property role="TrG5h" value="it" />
<node concept="2jxLKc" id="6zber0NEDYq" role="1tU5fm" />
<node concept="Rh6nW" id="Q_4x90bSM5" role="1bW2Oz">
<property role="TrG5h" value="it" />
<node concept="2jxLKc" id="Q_4x90bSM6" role="1tU5fm" />
</node>
</node>
</node>
</node>
</node>
<node concept="1KnU$U" id="6zber0NWkmm" role="2OqNvi" />
</node>
<node concept="2es0OD" id="6zber0NEB$2" role="2OqNvi">
<node concept="1bVj0M" id="6zber0NEB$4" role="23t8la">
<node concept="3clFbS" id="6zber0NEB$5" role="1bW5cS">
<node concept="3clFbF" id="6zber0NEB$c" role="3cqZAp">
<node concept="2OqwBi" id="6zber0NEB$d" role="3clFbG">
<node concept="37vLTw" id="6zber0NEB$e" role="2Oq$k0">
<ref role="3cqZAo" node="7mB3viLmGMp" resolve="imports" />
<node concept="3clFbF" id="6zber0NDM$4" role="3cqZAp">
<node concept="2OqwBi" id="6zber0NDQRe" role="3clFbG">
<node concept="2OqwBi" id="6zber0NWjcx" role="2Oq$k0">
<node concept="2OqwBi" id="6zber0NEDdW" role="2Oq$k0">
<node concept="2OqwBi" id="6zber0NDVGR" role="2Oq$k0">
<node concept="2OqwBi" id="6zber0NDT3R" role="2Oq$k0">
<node concept="2OqwBi" id="6zber0NDOOR" role="2Oq$k0">
<node concept="2OqwBi" id="6zber0NDMDz" role="2Oq$k0">
<node concept="37vLTw" id="6zber0NDM$2" role="2Oq$k0">
<ref role="3cqZAo" node="3KN3A4vEzi5" resolve="node" />
</node>
<node concept="2Rf3mk" id="6zber0NDMKN" role="2OqNvi">
<node concept="1xIGOp" id="6zber0NDNVs" role="1xVPHs" />
</node>
</node>
<node concept="3goQfb" id="6zber0NDQb7" role="2OqNvi">
<node concept="1bVj0M" id="6zber0NDQb9" role="23t8la">
<node concept="3clFbS" id="6zber0NDQba" role="1bW5cS">
<node concept="3clFbF" id="6zber0NDQj9" role="3cqZAp">
<node concept="2OqwBi" id="6zber0NDQvw" role="3clFbG">
<node concept="37vLTw" id="6zber0NDQj8" role="2Oq$k0">
<ref role="3cqZAo" node="6zber0NDQbb" resolve="it" />
</node>
<node concept="2z74zc" id="6zber0NDQEx" role="2OqNvi" />
</node>
</node>
</node>
<node concept="Rh6nW" id="6zber0NDQbb" role="1bW2Oz">
<property role="TrG5h" value="it" />
<node concept="2jxLKc" id="6zber0NDQbc" role="1tU5fm" />
</node>
</node>
</node>
</node>
<node concept="3$u5V9" id="6zber0NDT$6" role="2OqNvi">
<node concept="1bVj0M" id="6zber0NDT$8" role="23t8la">
<node concept="3clFbS" id="6zber0NDT$9" role="1bW5cS">
<node concept="3clFbF" id="6zber0NDUq0" role="3cqZAp">
<node concept="2OqwBi" id="6zber0NDUDW" role="3clFbG">
<node concept="37vLTw" id="6zber0NDUpZ" role="2Oq$k0">
<ref role="3cqZAo" node="6zber0NDT$a" resolve="ref" />
</node>
<node concept="2ZHEkA" id="6zber0NDV9D" role="2OqNvi" />
</node>
</node>
</node>
<node concept="Rh6nW" id="6zber0NDT$a" role="1bW2Oz">
<property role="TrG5h" value="ref" />
<node concept="2jxLKc" id="6zber0NDT$b" role="1tU5fm" />
</node>
</node>
</node>
</node>
<node concept="1KnU$U" id="6zber0NDWss" role="2OqNvi" />
</node>
<node concept="X8dFx" id="6zber0NEB$f" role="2OqNvi">
<node concept="1rXfSq" id="6zber0NEB$g" role="25WWJ7">
<ref role="37wK5l" node="500mE4_soZN" resolve="usedLanguages" />
<node concept="37vLTw" id="6zber0NEL2t" role="37wK5m">
<ref role="3cqZAo" node="6zber0NEB$j" resolve="m" />
<node concept="3$u5V9" id="6zber0NEDYl" role="2OqNvi">
<node concept="1bVj0M" id="6zber0NEDYn" role="23t8la">
<node concept="3clFbS" id="6zber0NEDYo" role="1bW5cS">
<node concept="3clFbF" id="6zber0NEEw1" role="3cqZAp">
<node concept="2OqwBi" id="6zber0NEENi" role="3clFbG">
<node concept="37vLTw" id="6zber0NEEw0" role="2Oq$k0">
<ref role="3cqZAo" node="6zber0NEDYp" resolve="it" />
</node>
<node concept="I4A8Y" id="6zber0NEFaM" role="2OqNvi" />
</node>
</node>
</node>
<node concept="Rh6nW" id="6zber0NEDYp" role="1bW2Oz">
<property role="TrG5h" value="it" />
<node concept="2jxLKc" id="6zber0NEDYq" role="1tU5fm" />
</node>
</node>
</node>
</node>
<node concept="1KnU$U" id="6zber0NWkmm" role="2OqNvi" />
</node>
<node concept="2es0OD" id="6zber0NEB$2" role="2OqNvi">
<node concept="1bVj0M" id="6zber0NEB$4" role="23t8la">
<node concept="3clFbS" id="6zber0NEB$5" role="1bW5cS">
<node concept="3clFbF" id="6zber0NEB$c" role="3cqZAp">
<node concept="2OqwBi" id="6zber0NEB$d" role="3clFbG">
<node concept="37vLTw" id="6zber0NEB$e" role="2Oq$k0">
<ref role="3cqZAo" node="7mB3viLmGMp" resolve="usedLangs" />
</node>
<node concept="X8dFx" id="6zber0NEB$f" role="2OqNvi">
<node concept="1rXfSq" id="6zber0NEB$g" role="25WWJ7">
<ref role="37wK5l" node="500mE4_soZN" resolve="usedLanguages" />
<node concept="37vLTw" id="6zber0NEL2t" role="37wK5m">
<ref role="3cqZAo" node="6zber0NEB$j" resolve="m" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="Rh6nW" id="6zber0NEB$j" role="1bW2Oz">
<property role="TrG5h" value="m" />
<node concept="2jxLKc" id="6zber0NEB$k" role="1tU5fm" />
</node>
</node>
</node>
</node>
<node concept="Rh6nW" id="6zber0NEB$j" role="1bW2Oz">
<property role="TrG5h" value="m" />
<node concept="2jxLKc" id="6zber0NEB$k" role="1tU5fm" />
</node>
</node>
</node>
@ -1476,7 +1472,7 @@
<node concept="1rXfSq" id="IFW4V2XMym" role="37wK5m">
<ref role="37wK5l" node="4pwDyRBwQ_v" resolve="languages" />
<node concept="37vLTw" id="IFW4V2XMyn" role="37wK5m">
<ref role="3cqZAo" node="7mB3viLmGMp" resolve="imports" />
<ref role="3cqZAo" node="7mB3viLmGMp" resolve="usedLangs" />
</node>
</node>
</node>