diff options
Diffstat (limited to 'pyGHDL/dom/DesignUnit.py')
| -rw-r--r-- | pyGHDL/dom/DesignUnit.py | 11 | 
1 files changed, 8 insertions, 3 deletions
| diff --git a/pyGHDL/dom/DesignUnit.py b/pyGHDL/dom/DesignUnit.py index 48ae24b6f..edca0789e 100644 --- a/pyGHDL/dom/DesignUnit.py +++ b/pyGHDL/dom/DesignUnit.py @@ -66,13 +66,14 @@ from pyGHDL.dom import DOMMixin, Position, DOMException  from pyGHDL.dom._Utils import GetNameOfNode, GetDocumentationOfNode  from pyGHDL.dom._Translate import GetGenericsFromChainedNodes, GetPortsFromChainedNodes, GetName  from pyGHDL.dom._Translate import GetDeclaredItemsFromChainedNodes, GetConcurrentStatementsFromChainedNodes -from pyGHDL.dom.Names import SimpleName +from pyGHDL.dom.Names import SimpleName, AllName  from pyGHDL.dom.Symbol import (      EntitySymbol,      ContextReferenceSymbol,      LibraryReferenceSymbol,      PackageSymbol,      PackageMemberReferenceSymbol, +    AllPackageMembersReferenceSymbol  ) @@ -92,10 +93,14 @@ class UseClause(VHDLModel_UseClause, DOMMixin):      @classmethod      def parse(cls, useNode: Iir):          nameNode = nodes.Get_Selected_Name(useNode) -        uses = [PackageMemberReferenceSymbol(nameNode, GetName(nameNode))] +        name = GetName(nameNode) +        symbolType = AllPackageMembersReferenceSymbol if isinstance(name, AllName) else PackageMemberReferenceSymbol +        uses = [symbolType(nameNode, name)]          for use in utils.chain_iter(nodes.Get_Use_Clause_Chain(useNode)):              nameNode = nodes.Get_Selected_Name(use) -            uses.append(PackageMemberReferenceSymbol(nameNode, GetName(nameNode))) +            name = GetName(nameNode) +            symbolType = AllPackageMembersReferenceSymbol if isinstance(name, AllName) else PackageMemberReferenceSymbol +            uses.append(symbolType(nameNode, name))          return cls(useNode, uses) | 
