Open davidyuk opened 1 year ago
First, this has nothing to do with includes. You can put the namespaces in the same file and it will still not work.
The error is produced because a namespace can only recognize what was written before it, so if you want to have a base namespace and a dependent namespace, you should have them in order.
namespace Base =
...
namespace Dependent =
...
Is there a specific situation where you need 2 namespaces to depend on each other, and you're not better off refactoring the code?
I would say that it's better to keep it this way in order to prevent messy designs, and the error messages are clear enough once you know that a namespace can only recognize what's written before it.
@radrow Do you have any opinion on this?
I think it would be much more user friendly if we explicitly point out that dependency cycles are not supported. For example functions within one namespace do support mutual recursion, so I can imagine this being confusing.
Reproduction
Includes.aes
Library.aes
Sublibrary.aes
CLI prints an unclear error
it works if I include
number
from another namespace (without cycle deps). Sophia should disallow cycle dependencies explicitly or the above reproduction should work.