Files
codeql/rust/ql/test/extractor-tests/macro-in-library/test.ql
Paolo Tranquilli 223f0c8684 Rust: fix macro expansion in library code
There was a mismatch between a `self.macro_context_level += 1` and the
corresponding `self.macro_context_level -= 1`, which resulted in an
`usize` underflow (panic in debug mode, wrong behaviour in release
mode).

This fixes it and adds a relevant assertion and test. In order to
properly test library mode extraction, a special option enforcing that
on source code as well is added.
2025-07-01 17:31:26 +02:00

11 lines
327 B
Plaintext

import rust
import codeql.rust.Diagnostics
query predicate macro_items(MacroItems c, int index, Item expanded) {
exists(c.getFile().getRelativePath()) and
not c.getLocation().getFile().getAbsolutePath().matches("%proc_macro.rs") and
expanded = c.getItem(index)
}
query predicate warnings(ExtractionWarning w) { any() }