Inconsistent implicit cast from bounded channel to handshake channel
A procedure taking a handshake channel (e.g. intchan
) can be called with a bounded channel (e.g. intchan10
), but it cannot be assigned directly:
void test(intchan ch) {}
mainAgent {
intchan10 ch;
//allowed
test(ch);
//disallowed
intchan ch2 = ch;
//disallowed
intchan ch3;
ch3 = ch;
}
As a possible workaround, you can use a procedure to "cast" the channel type:
intchan cast(intchan ch) {
return ch;
}
mainAgent {
intchan10 ch;
intchan ch2 = cast(ch);
}