<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 3 January 2016 at 17:04, Walter Bright via Digitalmars-d <span dir="ltr"><<a href="mailto:digitalmars-d@puremagic.com" target="_blank">digitalmars-d@puremagic.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 1/2/2016 9:45 PM, Manu via Digitalmars-d wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I've been using recursive modules to place extern(C++) declarations in a<br>
sensible scope quite a lot. It breaks sometimes, not sure why... suspect it's<br>
related to forward referencing, or multiple/semi-circular imports.<br>
</blockquote>
<br></span>
It's a bug if circular imports do not work. But circular imports are not allowed in Go, and I consider them as something to avoid. They can be very confusing to try and follow.<br>
</blockquote></div><br></div><div class="gmail_extra">This is why I talk about 'real-world' code, it's never that simple. String for instance, there are a lot of string functions; it depends on lots of stuff, and basically everything depends on string. Examples of circular references like this are endless, and they're usually foundational things, at the bottom of the stack.</div></div>