Description
Bug description:
Hi there,
Another day, another VHDL LS bug 😅
Currently, no warning is reported when a function
or procedure
is declared but not defined inside a protected type
. This should ideally trigger a diagnostic, since such declarations are incomplete and can break tools that rely on fully defined protected types.
This may lead to situations where the LSP assumes the protected type is valid, but simulation or synthesis tools will later reject it - defeating the purpose of early linting and validation.
Thanks again for your awesome work!
Minimal Reproducible Example (MRE):
library ieee;
use ieee.std_logic_1164.all;
package my_pkg is
type my_protected_type is protected
procedure do_something;
end protected my_protected_type;
end package my_pkg;
package body my_pkg is
type my_protected_type is protected body
-- Missing definition of 'do_something'
-- This should raise a warning or error
end protected body my_protected_type;
end package body my_pkg;
Expected:
A warning or error like:
Procedure 'do_something' declared in protected type but not defined in protected body.
vhdl ls(missing_in_sensitivity_list)
Actual:
No diagnostics at all - VHDL LS considers the file clean.