Branch: refs/heads/main
Revision: 99c1adc
Author: riftEmber
Link: Resolve operator overloads in dyno by riftEmber · Pull Request #20662 · chapel-lang/chapel · GitHub
Log Message:
Merge pull request #20662 from riftEmber/resolve-op-overloads
Resolve operator overloads in dyno
Adds support for resolving operator overloads in Dyno, and tests this functionality.
Most tests are done with the cast operator on a record, declared as a primary method, a secondary method, and a standalone function. Testing is also done with other operators, as well as testing the basic visibility and disambiguation requirements for operators.
Additionally, this PR adds and tests a post-parsing check that operators must have valid operator names, and procedures with valid operator names must be declared as operators.
This PR completes the work of https://github.com/Cray/chapel-private/issues/3785 and its predecessor spike: resolve operator overloads in dyno · Issue #20488 · chapel-lang/chapel · GitHub. Also see previous PR Add tests for cast operator overload in dyno by riftEmber · Pull Request #20552 · chapel-lang/chapel · GitHub.
[reviewed by @mppf and @DanilaFe]
Modified Files:
M compiler/AST/symbol.cpp
M compiler/dyno/include/chpl/framework/all-global-strings.h
M compiler/dyno/include/chpl/resolution/resolution-types.h
M compiler/dyno/include/chpl/uast/OpCall.h
M compiler/dyno/lib/resolution/Resolver.cpp
M compiler/dyno/lib/resolution/resolution-queries.cpp
M compiler/dyno/lib/resolution/resolution-types.cpp
M compiler/dyno/lib/uast/OpCall.cpp
M compiler/dyno/lib/uast/post-parse-checks.cpp
M compiler/dyno/test/parsing/testParseChecks.cpp
M compiler/dyno/test/resolution/testOperatorOverloads.cpp
Compare: https://github.com/chapel-lang/chapel/compare/3219a34a30b0...99c1adcece89