<div dir="ltr">Hi,<div>I've just realized that there's some kind of omnipresent concept in the DUChain called "ParseSession".</div><div><br></div><div>All language implementations I've looked at implement it but then it's not documented anywhere (AFAIK). I've been looking through the code further, then I realized there's the AbstractUseBuilder header file. This one instantiates some ParseSession as a template argument and does weird things with it [1]. And by weird things, I mean Adding an attribute called m_mapAst and then expecting the availability of an API such as:</div>

<div>LanguageSpecificUseBuilderBase::editor()->parseSession()->mapAstUse.<br></div><div><br></div><div>I don't really think this is acceptable API. Or maybe it's just that I don't feel like implementing a ParseSession concept in my plugin only because of that, so I would like to have your feedback.</div>

<div><br></div><div>As a naïve suggestion, alternatively this API should be added to the UseBuilder, both the mapAst attribute and the mapAstUse could be specified within the AbstractUseBuilder. If the implementation decides to call a ParseSession indoors, then it stays as an implementation detail.</div>

<div><br></div><div>Good night and happy hacking!</div><div>Aleix</div><div><br></div><div>[1] <a href="https://www.nerdist.com/wp-content/uploads/2014/05/shia-labeouf-magic-gif.gif">https://www.nerdist.com/wp-content/uploads/2014/05/shia-labeouf-magic-gif.gif</a></div>

</div>