[Chapel Merge] Improve printing of operator methods when printing

Branch: refs/heads/main
Revision: 9ae0a8f
Author: lydia-duncan
Link: Improve printing of operator methods when printing a call stack at compilation by lydia-duncan · Pull Request #19677 · chapel-lang/chapel · GitHub
Log Message:

Merge pull request #19677 from lydia-duncan/improveOpPrinting

Improve printing of operator methods when printing a call stack at compilation
[reviewed by @vasslitvinov]

Resolves #17539

Prior to this change, if a call failed and reports a call stack involving an operator
method, we would print that operator method as:

called as MyRecord.=(lhs: MyRecord(0), rhs: MyRecord(0)

This was confusing, because the user did not write the call like that and cannot
do so. This change modifies the output so that operator methods are printed
like standalone operators:

called as =(lhs: MyRecord(0), rhs: MyRecord(0)
Adjust nameAndArgsToString of operator methods to not include `this` arg. Let the function remove `this` from the list of arguments it found but don't prepend its type to the return string. `nameAndArgsToString` is only called by `printCallstack` to create the output when a generic function has encountered a failure when calling other functions.

Add a test to track this output and updated a different one.

Passed a full paratest with futures

Modified Files:
A test/functions/operatorOverloads/operatorMethods/inCallStack.chpl

A test/functions/operatorOverloads/operatorMethods/inCallStack.good
M compiler/AST/FnSymbol.cpp
M test/types/errors/assignTypes.good

Compare: https://github.com/chapel-lang/chapel/compare/e222ec59ff56...9ae0a8fadfc7