17325, "bradcray", "Cast operator methods get confusing error about number of formals", "2021-03-03T16:58:15Z"
Summary of Problem
Attempting to make use of the new cast operator support in combination with the new operator method capability, I wrote the following program:
record R {
var x: sync int;
proc init=(x: int) {
this.x = x;
}
operator :(x: int, type t: R) {
return new R(x);
}
}
var myR: R = 3;
var myR2 = myR;
writeln(myR2.isFull());
writeln(myR.isFull());
which generates the following error message:
testit.chpl:8: error: cast function should have two formals
which is confusing since it does have two formals. Moving the cast operator to a standalone operator (rather than a method) solves the problem, but prevents the cast from being associated with a type.
Steps to Reproduce
Associated Future Test(s):
TODO
Configuration Information
- Output of
chpl --version
:chpl version 1.24.0 pre-release (ce03a6ea8a)