Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
RakuAST: streamline constant lookup in resolver
Specifically the IMPL-RESOLVE-NAME-CONSTANT method, with reduction of duplicated code, and support for partial lookups added. The IMPL-PARTIALLY-RESOLVE-NAME-CONSTANT method is removed. The partially-resolve-name-constant method now calls the IMPL-RESOLVE-NAME-CONSTANT method with the :partial named argument. Removed an unnecessary binding on the IMPL-STASH-HASH method. This was done to try to fix the RakuAST::Type::Setting lookup with multiple name parts to work, but it appears this suffers from a deeper issue with regards to lexically defined multi-part classes that partially shadow classes from the setting: BEGIN dd IO::Path.WHERE; # 3881366585920 my class IO::Path { } # 3881419809824 dd IO::Path.WHERE; # 3881419809824 dd IO.WHO<Path>.WHERE; # 3881419809824 dd SETTING::<IO>.WHO<Path>.WHERE; # 3881419809824 IMO the last one should be 3881366585920 rather than 3881419809824, which points to the lexically defined multi-part class.
- Loading branch information
Showing
1 changed file
with
70 additions
and
106 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters