On 26.02.2016 23:41, Walter Bright wrote:
On 2/26/2016 1:10 PM, Timon Gehr wrote:
Different passes are not really required once semantic analysis becomes
asynchronous. Just keep track of semantic analysis dependencies, with
strong and
weak dependencies and different means to resolve cycles of weak
dependencies.
Then write the semantic analysis of each component in a linear fashion
and pause
it whenever it depends on information that has not yet been obtained,
until that
information is computed.
I'll put you in charge of debugging that :-)
I am/was (I have not worked on it a lot lately). I haven't found it to
be particularly hard to debug.
It is likely the best way to fix the "forward reference error" situation.
My code which does this does not compile on DMD versions after 2.060 due
to forward reference issues. I have just reduced one of them:
https://issues.dlang.org/show_bug.cgi?id=15733