Skip to content

Commit

Permalink
visit nested LHSs in enum, typedef, and typeof conversions
Browse files Browse the repository at this point in the history
  • Loading branch information
zachjs committed Sep 2, 2024
1 parent 8f2dc46 commit 12d977f
Show file tree
Hide file tree
Showing 6 changed files with 22 additions and 3 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
* Fixed `--write path/to/dir/` with directives like `` `default_nettype ``
* Fixed `logic` incorrectly converted to `wire` even when provided to a task or
function output port
* Fixed conversion of enum item names and typenames nested deeply within the
left-hand side of an assignment
* Fixed `input signed` ports of interface-using modules producing invalid
declarations after inlining
* Fixed `` `resetall `` not resetting the `` `default_nettype ``
Expand Down
2 changes: 1 addition & 1 deletion src/Convert/Enum.hs
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ traverseModuleItemM (Genvar x) =
insertElem x Nil >> return (Genvar x)
traverseModuleItemM item =
traverseNodesM traverseExprM return traverseTypeM traverseLHSM return item
where traverseLHSM = traverseLHSExprsM traverseExprM
where traverseLHSM = traverseNestedLHSsM $ traverseLHSExprsM traverseExprM

traverseGenItemM :: GenItem -> SC GenItem
traverseGenItemM = traverseGenItemExprsM traverseExprM
Expand Down
2 changes: 1 addition & 1 deletion src/Convert/TypeOf.hs
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ insertType ident typ = do
traverseModuleItemM :: ModuleItem -> ST ModuleItem
traverseModuleItemM =
traverseNodesM traverseExprM return traverseTypeM traverseLHSM return
where traverseLHSM = traverseLHSExprsM traverseExprM
where traverseLHSM = traverseNestedLHSsM $ traverseLHSExprsM traverseExprM

-- convert TypeOf in a GenItem
traverseGenItemM :: GenItem -> ST GenItem
Expand Down
2 changes: 1 addition & 1 deletion src/Convert/Typedef.hs
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ traverseModuleItemM item = traverseModuleItemM' item
traverseModuleItemM' :: ModuleItem -> SC ModuleItem
traverseModuleItemM' =
traverseNodesM traverseExprM return traverseTypeM traverseLHSM return
where traverseLHSM = traverseLHSExprsM traverseExprM
where traverseLHSM = traverseNestedLHSsM $ traverseLHSExprsM traverseExprM

traverseGenItemM :: GenItem -> SC GenItem
traverseGenItemM = traverseGenItemExprsM traverseExprM
Expand Down
12 changes: 12 additions & 0 deletions test/core/typename_lhs_nest.sv
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
module top;
logic x;
logic [2:0] y;
for (genvar i = 0; i < 3; i++) begin : blk
wire w;
assign y[i] = w;
end
localparam type T = enum int { K = 0 };
assign blk[K].w = 1;
assign blk[$bits(x)].w = 1;
assign blk[$bits(T) - 30].w = 1;
endmodule
5 changes: 5 additions & 0 deletions test/core/typename_lhs_nest.v
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
module top;
wire x;
wire [2:0] y;
assign y = 1'sb1;
endmodule

0 comments on commit 12d977f

Please sign in to comment.