Skip to content

Commit 247790c

Browse files
committed
tests: add failing test case for inside expression in if generate construct
This test was added to demonstrate the bug where 'if (x inside {...})' at module level failed to parse. The test now passes after the fix.
1 parent 6762697 commit 247790c

1 file changed

Lines changed: 15 additions & 0 deletions

File tree

sv-parser-parser/src/tests.rs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5062,6 +5062,21 @@ mod spec {
50625062
assign r=3'bz11 inside {3'b1?1, 3'b011}; // r = 1'bx"##,
50635063
Ok((_, _))
50645064
);
5065+
// Bug trigger: inside expression in module-level if statement (without generate keyword)
5066+
// Fails at "inside" keyword - parser cannot handle "if (x inside {a, b}) begin" at module level
5067+
test!(
5068+
many1(module_item),
5069+
r##"module a;
5070+
typedef enum logic {
5071+
SwAccessRW = 0,
5072+
SwAccessRO = 1
5073+
} sw_access_e;
5074+
parameter sw_access_e SwAccess = SwAccessRW;
5075+
wire x;
5076+
if (SwAccess inside {SwAccessRW, SwAccessRO});
5077+
endmodule"##,
5078+
Ok((_, _))
5079+
);
50655080
test!(
50665081
many1(module_item),
50675082
r##"initial begin

0 commit comments

Comments
 (0)