Files
codeql/rust/ql/test/extractor-tests/generated/Function/Function.ql
Paolo Tranquilli 667eed9b9b Rust: store in the DB if a library function or const had a body
When skipping bodies in library code, we lose the information whether a
body was originally present. This can be important, for example when
determining whether a trait method has a default implementation.

With this change that information can be recovered via the
`hasImplementation` predicate.
2025-06-03 10:41:31 +02:00

47 lines
2.5 KiB
Plaintext
Generated

// generated by codegen, do not edit
import codeql.rust.elements
import TestUtils
from
Function x, string hasParamList, int getNumberOfAttrs, string hasExtendedCanonicalPath,
string hasCrateOrigin, string hasAttributeMacroExpansion, string hasAbi, string hasBody,
string hasGenericParamList, string isAsync, string isConst, string isDefault, string isGen,
string isUnsafe, string hasName, string hasRetType, string hasVisibility, string hasWhereClause,
string hasImplementation
where
toBeTested(x) and
not x.isUnknown() and
(if x.hasParamList() then hasParamList = "yes" else hasParamList = "no") and
getNumberOfAttrs = x.getNumberOfAttrs() and
(
if x.hasExtendedCanonicalPath()
then hasExtendedCanonicalPath = "yes"
else hasExtendedCanonicalPath = "no"
) and
(if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and
(
if x.hasAttributeMacroExpansion()
then hasAttributeMacroExpansion = "yes"
else hasAttributeMacroExpansion = "no"
) and
(if x.hasAbi() then hasAbi = "yes" else hasAbi = "no") and
(if x.hasBody() then hasBody = "yes" else hasBody = "no") and
(if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and
(if x.isAsync() then isAsync = "yes" else isAsync = "no") and
(if x.isConst() then isConst = "yes" else isConst = "no") and
(if x.isDefault() then isDefault = "yes" else isDefault = "no") and
(if x.isGen() then isGen = "yes" else isGen = "no") and
(if x.isUnsafe() then isUnsafe = "yes" else isUnsafe = "no") and
(if x.hasName() then hasName = "yes" else hasName = "no") and
(if x.hasRetType() then hasRetType = "yes" else hasRetType = "no") and
(if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and
(if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no") and
if x.hasImplementation() then hasImplementation = "yes" else hasImplementation = "no"
select x, "hasParamList:", hasParamList, "getNumberOfAttrs:", getNumberOfAttrs,
"hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin,
"hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "hasAbi:", hasAbi, "hasBody:", hasBody,
"hasGenericParamList:", hasGenericParamList, "isAsync:", isAsync, "isConst:", isConst,
"isDefault:", isDefault, "isGen:", isGen, "isUnsafe:", isUnsafe, "hasName:", hasName,
"hasRetType:", hasRetType, "hasVisibility:", hasVisibility, "hasWhereClause:", hasWhereClause,
"hasImplementation:", hasImplementation