Arthur Baars
ca27785ace
Rust: extract files on a per-project basis
...
This way we have only one "project" database in-memory at a time. This
should avoid running out of memory when analyzing large mono-repos.
2024-10-10 15:53:14 +02:00
Arthur Baars
db28f1b29e
Rust: use macro to inject extraction functions for detached properties
2024-10-10 15:53:13 +02:00
Arthur Baars
8372a2e562
Rust: ensure error and token locations are valid
...
The locations are "clipped" to the ranges of the parent node of a token,
and the root node of the parse tree for errors.
2024-10-10 15:53:12 +02:00
Arthur Baars
58d2c71c20
Rust: load files from disk ourselves
...
This avoids problems with files containing invalid utf-8 data, which may cause
panic's like:
```
thread 'main' panicked at external/rules_rust~~_crate~ql~~r~r__ra_ap_salsa-0.0.232/src/input.rs:91:32:
no value set for CompressedFileTextQuery(FileId(2429))
stack backtrace:
0: rust_begin_unwind
at /rustc/eeb90cda1969383f56a2637cbd3037bdf598841c/library/std/src/panicking.rs:665:5
1: core::panicking::panic_fmt
at /rustc/eeb90cda1969383f56a2637cbd3037bdf598841c/library/core/src/panicking.rs:74:14
2: <salsa::input::InputStorage<Q> as salsa::plumbing::QueryStorageOps<Q>>::fetch
3: <DB as ra_ap_base_db::SourceDatabase>::compressed_file_text::__shim
4: <ra_ap_base_db::FileTextQuery as salsa::plumbing::QueryFunction>::execute
5: salsa::Cycle::catch
6: salsa::derived_lru::slot::Slot<Q,MP>::execute
7: salsa::derived_lru::slot::Slot<Q,MP>::read
8: <salsa::derived_lru::DerivedStorage<Q,MP> as salsa::plumbing::QueryStorageOps<Q>>::fetch
9: <DB as ra_ap_base_db::SourceDatabase>::file_text::__shim
10: <DB as ra_ap_base_db::SourceDatabase>::file_text
11: <ra_ap_base_db::ParseQuery as salsa::plumbing::QueryFunction>::execute
12: salsa::Cycle::catch
13: salsa::derived_lru::slot::Slot<Q,MP>::execute
14: salsa::derived_lru::slot::Slot<Q,MP>::read
15: <salsa::derived_lru::DerivedStorage<Q,MP> as salsa::plumbing::QueryStorageOps<Q>>::fetch
16: <DB as ra_ap_base_db::SourceDatabase>::parse::__shim
17: <DB as ra_ap_base_db::SourceDatabase>::parse
18: ra_ap_hir::semantics::SemanticsImpl::parse
19: single_arch_extractor::main
```
2024-10-10 15:53:11 +02:00
Arthur Baars
f70f8a3536
Rust: fix utf8 test
2024-10-10 15:53:10 +02:00
Arthur Baars
1135bf6bcd
Rust: improve QL test script
2024-10-10 15:53:09 +02:00
Arthur Baars
3e877ffaac
Rust: do not fail on bad Cargo.toml files
2024-10-10 15:53:08 +02:00
Arthur Baars
ae19b2fd89
Rust: check that TextRanges are for the correct file
2024-10-10 15:53:07 +02:00
Arthur Baars
faa168993c
Rust: reduce log output
2024-10-10 15:53:06 +02:00
Arthur Baars
0c10f083cb
Rust: set RUST_BACKTRACE=1
2024-10-10 15:53:05 +02:00
Arthur Baars
796da126b8
Rust: update expected output
2024-10-10 15:52:57 +02:00
Arthur Baars
0b3b95ab54
Rust: macro expansion
2024-10-10 15:19:47 +02:00
Arthur Baars
cad2b74137
Rust: integrate Rust Analyzer's Semantic module into extractor
2024-10-10 15:19:46 +02:00
Arthur Baars
6ede20cccc
Rust: regenerate code
2024-10-10 15:19:45 +02:00
Arthur Baars
69f0e8bcf7
Rust: add MacroStmts and MacroItems
2024-10-10 15:19:43 +02:00
Arthur Baars
7986fc7036
Rust: avoid double '.' in trap extension
2024-10-10 15:19:42 +02:00
Tom Hvitved
4df9cd88ef
Merge pull request #17658 from hvitved/shared/cfg-conditional-splitting
...
Shared `ConditionalCompletionSplitting` implementation
2024-10-10 13:21:38 +02:00
Cornelius Riemenschneider
6322270926
Merge branch 'main' into criemen/flip-enable-plus
2024-10-10 09:54:16 +02:00
Geoffrey White
25b3d76f71
Merge pull request #17718 from geoffw0/unusedvar4
...
Rust: Restrict variables to lowercase (for now).
2024-10-10 08:22:52 +01:00
Geoffrey White
09c2f901f4
Merge pull request #17525 from geoffw0/unreachable
...
Rust: Unreachable code query
2024-10-10 08:22:08 +01:00
Tom Hvitved
6a87eb0c73
Merge pull request #17696 from hvitved/rust/captured-variables
...
Rust: Account for captured variables
2024-10-09 19:42:03 +02:00
Geoffrey White
719cef8298
Merge branch 'main' into unreachable
2024-10-09 17:06:11 +01:00
Geoffrey White
5ac9c2db74
Rust: Accept variables test change.
2024-10-09 17:00:15 +01:00
Geoffrey White
dfeb35fe1a
Rust: Move the restriction to variableDecl.
2024-10-09 16:21:12 +01:00
Geoffrey White
f171eeb229
Rust: Restrict 'unreachable' to nodes intended to be part of the CFG.
2024-10-09 15:37:10 +01:00
Geoffrey White
a66f31d844
Rust: Restrict variables to lowercase (for now).
2024-10-09 15:14:27 +01:00
Tom Hvitved
918e435a48
Merge pull request #17690 from hvitved/rust/ast-consistency-queries
...
Rust: Add AST consistency queries
2024-10-09 15:54:51 +02:00
Tom Hvitved
04d1c82005
Merge pull request #17689 from hvitved/rust/print-ast
...
Rust: `PrintAst` improvements
2024-10-09 15:54:30 +02:00
Cornelius Riemenschneider
4c21444dd5
Bazel: Flip --incompatible_use_plus_in_repo_names.
...
We've hardcoded the tilde in a lot of places :(
This improves performance on Windows and gets us ready for Bazel 8.
We need an upgrade of rules_rust for this to work.
2024-10-09 14:04:05 +02:00
Geoffrey White
f3d727fadc
Rust: Correct spurious annotations.
2024-10-09 11:52:24 +01:00
Geoffrey White
fa1c92dbe7
Rust: Another case worth having.
2024-10-09 11:50:29 +01:00
Geoffrey White
7a6eabc8a3
Rust: Additional test cases.
2024-10-09 11:31:44 +01:00
Tom Hvitved
3d95369608
Shared ConditionalSplitting implementation
2024-10-09 11:02:13 +02:00
Tom Hvitved
11016e193c
Rust: PrintAst improvements
2024-10-09 10:41:30 +02:00
Geoffrey White
41218fb89f
Rust: Test spacing / variable names.
2024-10-09 09:17:24 +01:00
Tom Hvitved
5afd2d5bf0
Rust: Account for captured variables
2024-10-09 10:17:01 +02:00
Tom Hvitved
a3a0c2b269
Rust: Add more variable tests
2024-10-09 10:17:00 +02:00
Tom Hvitved
fcf1b6d6f5
Merge pull request #17657 from hvitved/rust/cfg-conditional-splitting
...
Rust: Implement `ConditionalCompletionSplitting`
2024-10-08 16:21:14 +02:00
Tom Hvitved
08d6d54961
Rust: Add AST consistency queries
2024-10-08 15:00:38 +02:00
Geoffrey White
70d530a49c
Rust: Exclude nodes that aren't part of the CFG.
2024-10-08 13:52:15 +01:00
Geoffrey White
a7dbe29448
Rust: Add parenthesis example to test.
2024-10-08 13:50:17 +01:00
Geoffrey White
7235ba8f91
Rust: Fix test compilation errors.
2024-10-08 13:38:33 +01:00
Geoffrey White
3b1d917c2b
Rust: Autoformat.
2024-10-08 13:30:28 +01:00
Tom Hvitved
cb1ca4c75c
Update rust/ql/lib/codeql/rust/controlflow/internal/Completion.qll
...
Co-authored-by: Geoffrey White <40627776+geoffw0@users.noreply.github.com >
2024-10-08 13:41:24 +02:00
Geoffrey White
6bde26d9fd
Rust: Switch firstUnreachable to hvitved's suggested implementation.
2024-10-08 12:07:44 +01:00
Geoffrey White
5d7a92cf13
Rust: Add example from discussion.
2024-10-08 12:00:53 +01:00
Geoffrey White
40096ebb62
Rust: More cleanup after merge.
2024-10-08 11:46:45 +01:00
Geoffrey White
9e3f4cd183
Rust: Accept test changes after merging main.
2024-10-08 11:43:31 +01:00
Geoffrey White
483370d5f4
Merge branch 'main' into unreachable
2024-10-08 11:40:03 +01:00
Geoffrey White
f084bb7bcf
Rust: A couple of interesting cases with short-circuiting.
2024-10-08 11:38:23 +01:00