struct
#include <slang/binding/Lookup.h>
LookupResult A structure that contains the results of a name lookup operation.
Contents
- Reference
Public types
- struct MemberSelector
- using Selector = std::variant<const ElementSelectSyntax*, MemberSelector>
Public functions
- auto addDiag(const Scope& scope, DiagCode code, SourceLocation location) -> Diagnostic&
- auto addDiag(const Scope& scope, DiagCode code, SourceRange sourceRange) -> Diagnostic&
- auto getDiagnostics() const -> const Diagnostics&
- auto hasError() const -> bool
- Returns true if an error occurred during lookup.
- void clear()
- Clears the structure of all results, as if it had been default initialized.
- void copyFrom(const LookupResult& other)
- Copies result members from the given result object.
- void reportErrors(const BindContext& context)
- void errorIfSelectors(const BindContext& context)
- Issues a diagnostic if there are selectors in the lookup result.
Public variables
- const Symbol* found
- const SystemSubroutine* systemSubroutine
- bool wasImported
- Set to true if the found symbol was imported from a package.
- bool isHierarchical
- Set to true if the lookup was hierarchical.
- bool isUpwardName
- Set to true if the symbol was found via upward name resolution.
- bool sawBadImport
- bool fromTypeParam
- bool fromForwardTypedef
- SmallVectorSized<Selector, 4> selectors
Typedef documentation
using slang:: LookupResult:: Selector = std::variant<const ElementSelectSyntax*, MemberSelector>
A type that represents a kind of selector for picking a child member from a found symbol. This can either be a dotted member select or an indexed element select (from an array).
Function documentation
Diagnostic& slang:: LookupResult:: addDiag(const Scope& scope,
DiagCode code,
SourceLocation location)
Reports a diagnostic that occurred during lookup. The stored diagnostics are not automatically emitted to the compilation, letting them be suppressed if desired.
Diagnostic& slang:: LookupResult:: addDiag(const Scope& scope,
DiagCode code,
SourceRange sourceRange)
Reports a diagnostic that occurred during lookup. The stored diagnostics are not automatically emitted to the compilation, letting them be suppressed if desired.
const Diagnostics& slang:: LookupResult:: getDiagnostics() const
Gets the list of diagnostics that occurred during lookup. The stored diagnostics are not automatically emitted to the compilation, letting them be suppressed if desired.
void slang:: LookupResult:: reportErrors(const BindContext& context)
Reports any diagnostics that have occurred during lookup to the given bind context, which will ensure they are visible to the compilation.
Variable documentation
const SystemSubroutine* slang:: LookupResult:: systemSubroutine
If the lookup found a system subroutine, a pointer to it is returned here and the found field will be nullptr.
bool slang:: LookupResult:: sawBadImport
Set to true if we observed an invalid import statement somewhere during lookup. This means the lack of a found symbol should be treated with caution, because it could be the import failure causing it instead of some otherwise invalid name.
bool slang:: LookupResult:: fromTypeParam
Set to true if the lookup was resolved through a type parameter. Some language rules restrict where this can be done.
bool slang:: LookupResult:: fromForwardTypedef
Set to true if the lookup was resolved through a forwarded typedef. Some language rules restrict where this can be done.
SmallVectorSized<Selector, 4> slang:: LookupResult:: selectors
A list of selectors that should be applied to the found symbol. Only applicable if the found symbol is a value symbol.