root::/super:: are rejected in expression position when the target is declared directly in that module
Limitation
reference/spec/modules.md lists root and super as path roots and says a
fully-qualified path is valid anywhere a name is expected. Reproduced against
current develop: root::helper(), called from a submodule where helper is
declared directly at the root, fails with T0003 undefined name root::helper``. The same root path through a further submodule
(root::parser::make) resolves correctly, and self::f() also works. The
symptom is consistent with path normalization handling a multi-segment root
path but not the one-segment case where the root module is also the
declaring module.
Impact
A program cannot call a root- or parent-module item by its fully-qualified
path from a submodule unless it goes through an intermediate module segment;
the spec gives no such exception. The workaround is an explicit import.
Affects
Resolution
None yet; tracked as metel-core#1221.