You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When declaring a signal or variable using a record element accessed via the record type name, VHDL LS currently does not issue any warning - even though such usage is invalid in standard VHDL and rejected by synthesis/simulation tools.
This may lead to situations where the LSP assumes the accessed type element is valid, but downstream tools later reject the design - defeating the purpose of early validation and feedback.
Expected behaviour:
The analyser should issue a warning something like this:
The record element cannot be used directly as a type vhdl_ls(illegal_type_reference)
Minimal reproducible example (MRE):
architecturebehofdata_acquisition_wrapperistypetest_tisrecord
slv: std_ulogic_vector(2downto0);
sl: std_ulogic;
bool: boolean;
endrecord;
-- These don't emit a warningsignal slv_test: test_t.slv;
signal sl_test: test_t.sl;
signal bool_test: test_t.bool;
beginendarchitecture;
Thanks again for your awesome work!
The text was updated successfully, but these errors were encountered:
Hi there, I checked again with Aldec Riviera Pro.
It actually throws the following error:
COMP96 ERROR COMP96_0381: "Bad type name.
So this seems to confirm - or at least strongly suggest - that using a record element accessed via the type name as a signal type is invalid, which aligns with what standard VHDL expects. 😅
(Of course, there’s always a chance the simulator could be misbehaving, but this adds some weight to the interpretation.)
Bug description:
Hi there,
Related to the MRE in this issue: #386
When declaring a signal or variable using a record element accessed via the record type name, VHDL LS currently does not issue any warning - even though such usage is invalid in standard VHDL and rejected by synthesis/simulation tools.
This may lead to situations where the LSP assumes the accessed type element is valid, but downstream tools later reject the design - defeating the purpose of early validation and feedback.
Expected behaviour:
The analyser should issue a warning something like this:
Minimal reproducible example (MRE):
Thanks again for your awesome work!
The text was updated successfully, but these errors were encountered: