From e00582de8f1ccf9b4ad1f1a262eb43c27cdcc1bd Mon Sep 17 00:00:00 2001 From: Zachary Snow Date: Mon, 18 Jul 2022 21:05:21 -0400 Subject: [PATCH] check for conflicts with unused declarations --- src/Convert/Package.hs | 17 +++++++++++++++-- test/core/package_unique.sv | 2 ++ test/core/package_unique.v | 1 + 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/Convert/Package.hs b/src/Convert/Package.hs index 3abc5fc..3964d37 100644 --- a/src/Convert/Package.hs +++ b/src/Convert/Package.hs @@ -123,8 +123,21 @@ convertPackages files = -- injected package items collectIdentConflicts :: Idents -> AST -> Writer Idents () collectIdentConflicts prefixes = - mapM_ $ collectModuleItemsM $ collectify traverseIdentsM $ - collectIdent prefixes + mapM_ $ collectModuleItemsM collectModuleItem + where + collectModuleItem = + evalScoperT . scoper >=> + collectify traverseIdentsM ident + scoper = scopeModuleItem collectDecl return return return + collectDecl decl = do + case decl of + Variable _ _ x _ _ -> lift $ ident x + Net _ _ _ _ x _ _ -> lift $ ident x + Param _ _ x _ -> lift $ ident x + ParamType _ x _ -> lift $ ident x + CommentDecl{} -> return () + return decl + ident = collectIdent prefixes -- write down identifiers that have a package name as a prefix collectIdent :: Idents -> Identifier -> Writer Idents () diff --git a/test/core/package_unique.sv b/test/core/package_unique.sv index c79d4e5..ef63296 100644 --- a/test/core/package_unique.sv +++ b/test/core/package_unique.sv @@ -1,9 +1,11 @@ package P; typedef logic T; + typedef logic [1:0] U; endpackage module top; P::T P_T; assign P_T = 0; initial $display("%b", P_T); + P::U P_U = 0; endmodule diff --git a/test/core/package_unique.v b/test/core/package_unique.v index 6ea251c..eef06d0 100644 --- a/test/core/package_unique.v +++ b/test/core/package_unique.v @@ -2,4 +2,5 @@ module top; wire P_T; assign P_T = 0; initial $display("%b", P_T); + reg [1:0] P_U = 0; endmodule