[Chapel Merge] dyno: function disambiguation

Branch: refs/heads/main
Revision: 2130cf5
Author: mppf
Link: dyno: function disambiguation by mppf · Pull Request #19206 · chapel-lang/chapel · GitHub
Log Message:

Merge pull request #19206 from mppf/next-disambiguation

dyno: function disambiguation

This PR adds a port of the function disambiguation logic to the new
compiler rework effort, including some new tests. None of these changes
impact the production compiler at this point. The new code is primarily
porting the old logic and rules to work with uAST and the dyno type
system.

Reviewed by @vasslitvinov - thanks!

  • [x] full local testing

Future Work:

  • This implementation inherits the complexity of the language and the old
    implementation. The following issue asks if we can simplify the
    language in this area:

    • #19195
  • This implementation uses a different approach for isMoreVisible than
    the production compiler and this issue discusses the specifics of the
    language design in that area:

    • #19167

      Modified Files:
      A compiler/next/include/chpl/resolution/disambiguation.h
      A compiler/next/include/chpl/resolution/intents.h
      A compiler/next/include/chpl/util/bitmap.h
      A compiler/next/lib/resolution/disambiguation.cpp
      A compiler/next/lib/resolution/intents.cpp
      A compiler/next/lib/util/bitmap.cpp
      A compiler/next/test/resolution/testDisambiguation.cpp
      M compiler/next/include/chpl/parsing/parsing-queries.h
      M compiler/next/include/chpl/queries/all-global-strings.h
      M compiler/next/include/chpl/queries/global-strings.h
      M compiler/next/include/chpl/resolution/can-pass.h
      M compiler/next/include/chpl/resolution/resolution-queries.h
      M compiler/next/include/chpl/resolution/resolution-types.h
      M compiler/next/include/chpl/resolution/scope-types.h
      M compiler/next/include/chpl/types/BoolType.h
      M compiler/next/include/chpl/types/ComplexType.h
      M compiler/next/include/chpl/types/ImagType.h
      M compiler/next/include/chpl/types/IntType.h
      M compiler/next/include/chpl/types/PrimitiveType.h
      M compiler/next/include/chpl/types/RealType.h
      M compiler/next/include/chpl/types/UintType.h
      M compiler/next/include/chpl/uast/Function.h
      M compiler/next/lib/parsing/parsing-queries.cpp
      M compiler/next/lib/resolution/CMakeLists.txt
      M compiler/next/lib/resolution/Makefile.include
      M compiler/next/lib/resolution/resolution-queries.cpp
      M compiler/next/lib/resolution/resolution-types.cpp
      M compiler/next/lib/types/ComplexType.cpp
      M compiler/next/lib/types/ImagType.cpp
      M compiler/next/lib/types/IntType.cpp
      M compiler/next/lib/types/RealType.cpp
      M compiler/next/lib/types/UintType.cpp
      M compiler/next/lib/util/CMakeLists.txt
      M compiler/next/lib/util/Makefile.include
      M compiler/next/test/resolution/CMakeLists.txt
      M compiler/next/test/resolution/testInteractive.cpp
      M compiler/next/test/resolution/testPoi.cpp
      M compiler/resolution/functionResolution.cpp
      M doc/rst/meta/compiler-internals-doxygen/base.rst

      Compare: Comparing 0297d8174803...2130cf548730 · chapel-lang/chapel · GitHub