A program element which can be the target of inter-function or inter-file dependencies.
This is the union of Declaration, DeclarationEntry and Macro, minus various kinds of declaration:
- FriendDecl is not included, as a friend declaration cannot be the target of a dependency (nor, as it happens, can they be a source).
- TemplateParameter and related UserTypes are not included, as they are intrinsic sub-components of their associated template.
- Template instantiations are excluded, as the template itself is more useful as a dependency target.
- Stack variables and local types are excluded, as they are lexically tied to their enclosing function, and intra-function dependencies can only be inter-file dependencies in pathological cases.
- Builtin functions and macros are excluded, as dependencies on them do not translate to inter-file dependencies (note that static functions and declarations within anonymous namespaces cannot be excluded for this reason, as the declaration can be in a header).
- DeclarationEntrys are only needed if they’re not definitions, for the definition to declaration dependency.
Gets an element which depends upon this symbol.
Gets the source of this element: either itself or a macro that expanded to this element.
Holds if this element may be from source. This predicate holds for all elements, except for those in the dummy file, whose name is the empty string. The dummy file contains declarations that are built directly into the compiler.
Gets the name of a primary CodeQL class to which this element belongs.
Gets the closest
Gets the primary file where this element occurs.
Gets the primary location of this element.
Gets the parent scope of this
Gets a comma-separated list of the names of the primary CodeQL classes to which this element belongs.
Holds if this element is affected in any way by a macro. All elements that are totally or partially generated by a macro are included, so this is a super-set of
Holds if this
Holds if this
Holds if this element comes from a macro expansion. Only elements that are entirely generated by a macro are included - for elements that partially come from a macro, see
Gets a textual representation of this element.