The two "Dead code" alerts (100379, 100380) point at the isSource and
isSink predicates in `private module RegexPatternFlowConfig implements
DataFlow::ConfigSig` in cpp/ql/lib/semmle/code/cpp/regex/RegexFlowConfigs.qll.
Rationale (Case C): The predicates are genuine and correctly wired -
`RegexPatternFlowConfig` is consumed by
`TaintTracking::Global<RegexPatternFlowConfig>` on the very next line,
which drives the `usedAsRegex` / `regexMatchedAgainst` public predicates.
The DeadCode query cannot see through signature-parameterized modules and
therefore flags every implementation-side `isSource`/`isSink` inside a
private ConfigSig module (the same false positive is present on many
existing configs across the codebase). Removing the leftover `private`
qualifier on the config module resolves both alerts by making the
module publicly reachable; the taint-tracking alias below it remains
private, so no additional flow surface is exposed to consumers of this
library.
Diagnostic `location.file` entries were using absolute paths (e.g.
`/home/runner/work/...`), causing broken links in the GitHub UI.
Now relativize against CWD (the source root during extraction), falling
back to a properly percent-encoded `file:` URI for paths outside it.
Fixes https://github.com/github/codeql/issues/21802
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Language and LanguageSpec gain optional output_node_types field.
When set, the generator produces dbscheme/QL from the output types
and the extractor validates TRAP against them.
All existing extractors pass None (no behavior change).
Ruby extract() calls gain vec![] for the new rules parameter.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
extract() gains a rules parameter. When empty, uses tree-sitter native
traversal (no behavior change). When non-empty, runs yeast desugaring
and extracts via traverse_yeast.
Adds AstNode trait abstracting over tree_sitter::Node and yeast::Node,
with minimal changes to existing Visitor methods (Node -> &N in 6
signatures).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Fixed 73 .ql query files where the @name metadata contained an ending period.
This ensures consistency with the CodeQL query metadata style guidelines.