Specifically in a set tag, we weren't properly removing deferred words from the eagerExecutionResult.getResult().getDeferredWords() because we were unioning those with the set tag's variable name.
Part of hydrateReconstructionFromContextBeforeDeferring will find the deferred macro functions which are marked as usedDeferredWords and hydrate their reconstruction within the prefixToPreserveState, and then they will get removed from eagerExecutionResult.getResult().getDeferredWords(), but since a new set was being created via:
Specifically in a set tag, we weren't properly removing deferred words from the
eagerExecutionResult.getResult().getDeferredWords()
because we were unioning those with the set tag's variable name.Part of
hydrateReconstructionFromContextBeforeDeferring
will find the deferred macro functions which are marked asusedDeferredWords
and hydrate their reconstruction within theprefixToPreserveState
, and then they will get removed fromeagerExecutionResult.getResult().getDeferredWords()
, but since a new set was being created via:We weren't removing the macro functions, which was causing the import alias to be fully deferred unnecessarily.