Information required to instantiate a sequence or property instance.
- const Symbol* symbol
- The assertion member being instantiated.
- const ASTContext* prevContext
- SourceLocation instanceLoc
- The location where the instance is being instantiated.
flat_hash_map<const Symbol*, std::tuple<const syntax::
PropertyExprSyntax*, ASTContext>> argumentMap
- A map of formal argument symbols to their actual replacements.
- flat_hash_map<std::string_view, const Symbol*> localVars
- SourceLocation argExpansionLoc
- const AssertionInstanceDetails* argDetails
- bool isRecursive
const ASTContext* slang::
ast:: ASTContext:: AssertionInstanceDetails:: prevContext
The previous AST context used to start the instantiation. This effectively forms a linked list when expanding a nested stack of sequence and property instances.
ast:: ASTContext:: AssertionInstanceDetails:: argExpansionLoc
If an argument to a sequence or property is being expanded, this member contains the source location where the argument was referenced.
const AssertionInstanceDetails* slang::
ast:: ASTContext:: AssertionInstanceDetails:: argDetails
If an argument is being expanded, this is the context in which the argument was originally being created (as opposed to where it is being expanded now).
ast:: ASTContext:: AssertionInstanceDetails:: isRecursive
Indicates whether this particular instance has already been seen previously in the stack of assertion instances being expanded. Only applicable to properties, since this is illegal for sequences.