[Chapel Merge] Fix bug with visibility of tertiary operators and

Branch: refs/heads/master
Revision: e1f97c8
Author: lydia-duncan
Log Message:

Merge pull request #17877 from lydia-duncan/tertiaryOp

Fix bug with visibility of tertiary operators and use/import limitation clauses
[reviewed by @mppf]

Classes that defined tertiary operators were failing to have those operators
enabled by import lists or use statements with only lists. This was because
we were not checking if the canonical type name was in those limitation
clauses and because we found candidates in other contexts (because there
are operator definitions on the owned/shared/etc. type due to them being
records), we weren't continuing on to check for operators defined on the
forwarded field. This change makes it so that we check the canonical type
name at the same time, but only for operators (the old behavior should
still be fine for other methods and we'd pay a higher compilation cost
otherwise)

Resolves #17474
Resolves Cray/chapel-private#2097

Adds tests of class tertiary operators and except/import limitation clauses,
and tests of record tertiary operators and use/import limitation clauses.
Fixes the class tertiary operator only list future.

Passed a full paratest with futures

Modified Files:
A test/visibility/except/cannotSeeTertiaryOperator.chpl

A test/visibility/except/cannotSeeTertiaryOperator.good
A test/visibility/except/cannotSeeTertiaryOperator.prediff
A test/visibility/except/cannotSeeTertiaryOperatorRecord.chpl
A test/visibility/except/cannotSeeTertiaryOperatorRecord.good
A test/visibility/except/cannotSeeTertiaryOperatorRecord.prediff
A test/visibility/except/secondaryMethodRecord.chpl
A test/visibility/except/secondaryMethodRecord.notest
A test/visibility/import/enablesUnqualified/canSeeTertiaryOperator.chpl
A test/visibility/import/enablesUnqualified/canSeeTertiaryOperator.good
A test/visibility/import/enablesUnqualified/canSeeTertiaryOperatorRecord.chpl
A test/visibility/import/enablesUnqualified/canSeeTertiaryOperatorRecord.good
A test/visibility/import/enablesUnqualified/secondaryMethodRecord.chpl
A test/visibility/import/enablesUnqualified/secondaryMethodRecord.notest
A test/visibility/only/canSeeTertiaryOperatorRecord.chpl
A test/visibility/only/canSeeTertiaryOperatorRecord.good
A test/visibility/only/secondaryMethodRecord.chpl
A test/visibility/only/secondaryMethodRecord.notest
R test/visibility/only/canSeeTertiaryOperator.bad
R test/visibility/only/canSeeTertiaryOperator.future
M compiler/resolution/visibleFunctions.cpp
M test/visibility/only/canSeeTertiaryOperator.good

Compare: https://github.com/chapel-lang/chapel/compare/09b1be129065...e1f97c8c6de5