Description
There are multiple issues outlining problems when trying to resolve members (of namespaces), both from within and from outside static scopes. This is caused by our lookup maps not being easily traversable respectively not including aliases for all possible scenarios.
Namespaces for types don't work #423 shows what's the issue from outside- ERROR AS200: Conversion from type '__near_JSONHandler_Todo' to '__near_JSONHandler_Todo' requires an explicit cast. #429 describes a mismatch between what's looked up
Exported type not found #144 describes issues with the non-standard way we look up typesProblems with calling methods from class under namespace #127 shows what's happening from the inside
So, this is a tracking meta issue for all those kinds of problems that should most likely be solved by reworking how our IR is linked with proper nested lookups, possibly also transitioning to symbol tables to avoid having to hash strings over and over again.
There are also multiple other issues that result from a different limitation of the resolver (can't resolve every kind of expression without first compiling it):
Compiling never end with some code examples #439 displays catastrophic backtracking- Can't call conditional expression #255 can't resolve conditional expressions
- Cannot call instance method and operator new in one place #207 can't call method on new expression
The latter are not directly tracked here but mentioned in case it turns out that there are ways to tackle them in one go.