Nick Rolfe
6b5974a372
Java: fix stats for databaseMetadata relation
2025-01-20 17:02:25 +00:00
Nick Rolfe
64f33955b5
Java: add databaseMetadata to dbscheme
2025-01-17 15:18:07 +00:00
Ian Lynagh
6be2e98796
Java/Kotlin: Remove the erasure relation
...
It's no longer used
2024-10-29 11:32:20 +00:00
Ian Lynagh
300864a38b
Java: dbscheme: Remove sourceid column of fields/5
...
It was always the same as the id column.
2024-09-24 14:06:53 +01:00
Ian Lynagh
baace41488
Java: Remove stats for typeVars.kind
2024-09-17 11:39:06 +01:00
Ian Lynagh
c5569cf5ad
Java: Remove long-deprecated 'kind' from typeVars
2024-09-17 11:39:05 +01:00
Ian Lynagh
6968d7c17c
Java: Remove duplicate/similar code from dbscheme
...
It's not been used for some time
2024-09-17 11:39:04 +01:00
Ian Lynagh
6166d061f2
Java: Move diagnostic_for next to diagnostics in the dbscheme
...
No code change, but it makes a bit more sense there
2024-09-17 11:39:04 +01:00
Ian Lynagh
7c99d9c648
Java: Remove snapshotDate from dbscheme
...
It's not been used for some time.
2024-09-17 11:39:03 +01:00
Cornelius Riemenschneider
6ba27dc863
Upgrade rules_pkg to 0.10.1.
2024-04-16 16:29:56 +02:00
Chris Smowton
04c9f60d96
Make up some stats for new expressions, setting canonical constructors as common as records and new expression kinds initially rare
2023-11-30 11:24:00 +00:00
Chris Smowton
20b97af02f
Implement dataflow for record patterns
...
Strategy: there is now a regular flow step from an instance-of LHS / switch expr to the pattern, 0 or more read steps corresponding to record pattern destructors, and then finally a normal SSA def/use step connecting the binding patterns to their first uses.
2023-11-30 11:24:00 +00:00
Chris Smowton
daccd04087
Basic extraction of record patterns
2023-11-30 11:23:59 +00:00
Chris Smowton
54a89d6fef
Handle 'case null, default:'
2023-11-30 11:23:59 +00:00
Cornelius Riemenschneider
96edc1d349
Add skeleton bazel files for accessing the dbschemes.
2023-10-05 09:00:38 +02:00
Ian Lynagh
1f538cced3
Kotlin: Handle IrSyntheticBodyKind.ENUM_ENTRIES
...
Generated by Kotlin 1.9 for some of our tests.
2023-06-19 10:36:29 +01:00
Ian Lynagh
69567449de
Java: Update stats
2023-03-30 15:53:34 +01:00
Ian Lynagh
81a26f0396
Java: Add expanded arguments
2023-03-30 15:53:34 +01:00
Chris Smowton
d5f7ef08b7
Update stats
2023-02-14 17:21:24 +00:00
Chris Smowton
3514dd1e4d
Java: merge the @class and @interface database types and tables
...
This will allow the extractor to emit class(id, ...) when all it knows about a class is its name, due to not having it available on the classpath. Previously it would have had to guess whether it belonged to @class or @interface, possibly introducing an inconsistency.
2023-02-14 17:21:23 +00:00
Ian Lynagh
a6b8f4b674
Java/Kotlin: Update stats
2022-11-10 20:29:04 +00:00
Ian Lynagh
d0dfb4926b
Kotlin/Java: Add compilation_info table
2022-11-10 20:29:04 +00:00
Tamas Vajk
9eea6d4193
Kotlin: Extract type parameter modifiers (reified, in, out)
2022-10-11 16:40:07 +02:00
Ian Lynagh
5f8d8cdf40
Make *.dbscheme non-executable
2022-08-24 16:37:26 +01:00
Tamas Vajk
e23d36909d
Add DB stats file
2022-08-19 14:51:37 +02:00
Tamas Vajk
1c08ac1d7a
Kotlin: Identify data classes during extraction
2022-08-19 14:51:36 +02:00
Ian Lynagh
aa07600f5a
Java: Update stats
2022-07-11 12:09:48 +01:00
Ian Lynagh
1730ec22d9
Kotlin: Extract an ErrorType if we fail to correctly extract a type
2022-07-01 16:33:43 +01:00
Ian Lynagh
5fc294d49e
Kotlin: Record that generated data class members are compiler-generated
2022-06-24 14:00:47 +01:00
Tamas Vajk
053ca2e940
Update DB stats file
2022-06-23 08:45:11 +02:00
Tamas Vajk
dabc956dbf
Unify loop break/continue statement handling between java and kotlin
2022-06-23 08:45:11 +02:00
Ian Lynagh
8a89251c4f
Kotlin: Tweak dbscheme
2022-05-10 19:51:31 +01:00
Ian Lynagh
bfe36558c1
Java/Kotlin: Update stats
2022-05-10 19:51:30 +01:00
Tamas Vajk
b66a3141f6
Extract functions using their name from JvmName annotation
2022-05-10 19:51:30 +01:00
Tamas Vajk
47799ae040
Code quality improvements + add dedicated DeadRefTypes test
2022-05-10 19:51:28 +01:00
Tamas Vajk
cdc7ed0e14
Extract container of adapter function as compiler generated
2022-05-10 19:51:28 +01:00
Tamas Vajk
22af7f0e89
Remove duplications of locatable and element in the DB scheme
2022-05-10 19:51:27 +01:00
Ian Lynagh
fac3699a5b
Kotlin: Generate stats
2022-05-10 19:51:27 +01:00
Tamas Vajk
a6f036d94e
Extract property references with only backing field
2022-05-10 19:51:23 +01:00
Tony Torralba
a6326b69dc
Update java/ql/lib/config/semmlecode.dbscheme
...
Apply suggestion by @igfoo
Co-authored-by: Ian Lynagh <igfoo@github.com >
2022-05-10 19:51:22 +01:00
Tony Torralba
4b22e1a378
Extract WhenBranch as Stmt
2022-05-10 19:51:22 +01:00
Tamas Vajk
0ba2daf31a
Adjust extraction to reuse KtProperty* relations
2022-05-10 19:51:22 +01:00
Tamas Vajk
f8343b8cc7
Extract local delegated properties
2022-05-10 19:51:22 +01:00
Chris Smowton
13cd145a76
Retain Member.getInitializer for Kotlin programs
...
I opt to identify any syntactic initializer. These are broader in scope than Java's member initializers, which are necessarily context-free, whereas in Kotlin the primary constructor's parameters can be referred to.
2022-05-10 19:51:20 +01:00
Tamas Vajk
18812c810c
Add PropertyRefExpr QL class, change extraction to use it, and add tests
2022-05-10 19:51:19 +01:00
Chris Smowton
96f3ea460f
Make varargs extraction more Java-like:
...
* Extract varargs as if they are ordinary positional arguments
* Adapt the QL that distinguishes varargs from ordinary arguments to account for Kotlin's varargs which can occur in the middle of the arg list
* Add a test checking dataflow through varargs which doesn't work yet due to array-get and array-set not being extracted as IndexExprs
* Extract the special case arrayOf(*x) as a clone call, which is (equivalent to) the Java lowering of that operation
2022-05-10 19:51:17 +01:00
Chris Smowton
a120fab9f7
Complete implementation of equality tests
...
- Create a new operator representing an infix value [in]equality test, equivalent to Objects.equals(lhs, rhs)
- Continue to use simple equality where it is clearly possible at the callsite
- Note that ieee754equals is the same as Java's == and != operators
2022-05-10 19:51:17 +01:00
Tamas Vajk
b4beddf2f9
Introduce cast for <unsafe-coerce> calls
2022-05-10 19:51:15 +01:00
Ian Lynagh
76ca0b2776
Kotlin: Pull Kotlin type for localvars out into its own table
2022-05-10 19:51:15 +01:00
Ian Lynagh
7862229807
Kotlin: Pull Kotlin type for params out into its own table
2022-05-10 19:51:15 +01:00