emitProtocolDispatch now requires the user-arg count to equal the protocol method's parameter list — exact, since protocol signatures have no defaults, packs, or variadics — and emits the same "expects N arguments, but M were given" diagnostic plain calls get. Previously extra args were silently dropped (and missing args left the thunk reading garbage). The dispatch gains the call-site span for the diagnostic. examples/1634 pins the rejection; full sweep confirms no existing code relied on the leniency.
6 lines
174 B
Plaintext
6 lines
174 B
Plaintext
error: 'dealloc_bytes' expects 1 argument, but 2 were given
|
|
--> examples/1634-protocol-call-arity.sx:10:5
|
|
|
|
|
10 | a.dealloc_bytes(p, 12345);
|
|
| ^^^^^^^^^^^^^^^
|