enhancementgood first issuevalidation
Repository metrics
- Stars
- (351 stars)
- PR merge metrics
- (PR metrics pending)
Description
Currently we have two different error messages for missing arguments, either a
- "Argument
<name>is missing" or a - "this POU takes 1 argument but 0 arguments were supplied"
A better approach would be to merge both these validations into one, displaying something along Argument(s) <list of names separated by a comma> are missing
FUNCTION_BLOCK foo
VAR_INPUT
x : DINT := 34;
END_VAR
METHOD bar
VAR_INPUT
x : DINT := 34;
END_VAR
END_METHOD
END_FUNCTION_BLOCK
FUNCTION baz
VAR_INPUT
x : DINT := 34;
END_VAR
END_FUNCTION
FUNCTION main : DINT
VAR
fb: foo;
END_VAR
fb.bar();
baz();
END_FUNCTION
Both the calls to fb.bar and baz have the same error, yet yield different diagnostics:
error[E030]: Argument `x` is missing
┌─ target/demo.st:22:5
│
22 │ fb.bar();
│ ^^^^^^ Argument `x` is missing
error[E032]: this POU takes 1 argument but 0 arguments were supplied
┌─ target/demo.st:23:5
│
23 │ baz();
│ ^^^ this POU takes 1 argument but 0 arguments were supplied
Compilation aborted due to critical errors.
Originally posted by @mhasel in https://github.com/PLC-lang/rusty/issues/1364#issuecomment-2488507797