Commit Graph

2225 Commits

Author SHA1 Message Date
Geoffrey White
01280aee67 Swift: Add missing import. 2023-03-31 08:48:57 +01:00
Paolo Tranquilli
3d6916eb72 Swift: add upgrade/downgrade scripts 2023-03-30 16:44:28 +02:00
Paolo Tranquilli
6f6d3f1262 Merge branch 'main' into redsun82/swift-imported-modules-as-set 2023-03-30 16:42:35 +02:00
Paolo Tranquilli
06ad5b3949 Revert "Swift: add upgrade/downgrade scripts"
This reverts commit 48c2303391.

This is done to merge main and readd the scripts in another commit.
2023-03-30 16:41:04 +02:00
Geoffrey White
7729a6bdbf Merge pull request #12509 from geoffw0/typealiasimpl
Swift: Extract type aliases
2023-03-30 11:06:14 +01:00
Geoffrey White
fcefd03b14 Swift: Fill out the upgrade/downgrade scripts. 2023-03-29 15:54:08 +01:00
Geoffrey White
d5928e150d Swift: Prepare upgrade/downgrade scripts. 2023-03-29 15:51:42 +01:00
Geoffrey White
4ba8de4802 Swift: Update codegen. 2023-03-29 15:49:26 +01:00
Geoffrey White
f042195e5c Swift: Connect it up. 2023-03-29 15:49:17 +01:00
Geoffrey White
d8703210dd Swift: Extract type aliases. 2023-03-29 15:49:12 +01:00
Mathias Vorreiter Pedersen
e3e68b7753 Merge pull request #12642 from geoffw0/modernstring
Swift: Modernize the swift/string-length-conflation query
2023-03-29 14:55:40 +01:00
Paolo Tranquilli
48c2303391 Swift: add upgrade/downgrade scripts 2023-03-29 15:44:07 +02:00
Paolo Tranquilli
20128adee4 Swift: make imported and exported modules a set 2023-03-29 15:44:07 +02:00
Jeroen Ketema
0acca2ba76 Merge pull request #12687 from jketema/unit-2
Make imports of `codeql.util.Unit` private
2023-03-29 13:07:12 +02:00
Nora Dimitrijević
70ed8c6e8f Swift: add QLdoc to Pattern 2023-03-29 11:52:50 +02:00
Nora Dimitrijević
3fbf90cbd7 Swift: add ConstructorDecl.isFailable/0 2023-03-29 11:52:50 +02:00
Nora Dimitrijević
55ce9760e1 Merge branch 'main' into swift/case-let-dataflow 2023-03-28 18:20:33 +02:00
Nora Dimitrijević
2a5f29cd0f Swift: remove getIdentityPreservingEnclosingPattern
The Pattern public interface doesn't really need it.
2023-03-28 18:18:32 +02:00
Nora Dimitrijević
94614320b5 Swift: refactor OptionalSomeDecl -> OptionalSomeContentSet 2023-03-28 15:15:16 +02:00
Anders Schack-Mulligen
7c74fd07e9 Merge pull request #12684 from aschackmull/dataflow/remove-footgun
Dataflow: Remove accidentally exposed predicates.
2023-03-28 15:14:58 +02:00
Nora Dimitrijević
ea9e8e7ddb Swift: fix bad join order in Pattern.getImmediateMatchingExpr
On Signal-iOS, this snippet:

```codeql
class Pattern extends Generated::Pattern {
  ...
  Expr getImmediateMatchingExpr() {
    ...
    exists(PatternBindingDecl v, int i |
      v.getPattern(i) = this and
      result = v.getInit(i)
    )
    ...
  }
  ...
}
```

Had the following join order:

```
             33926   ~0%    {3} r8 = SCAN PatternBindingDecl#ab5153b9::Generated::PatternBindingDecl::getImmediateInit#1#dispred#fff OUTPUT In.1, In.0, In.2
        2565045964   ~0%    {4} r9 = JOIN r8 WITH pattern_binding_decl_patterns_102#join_rhs ON FIRST 1 OUTPUT Lhs.1, Rhs.1, Lhs.2, Rhs.2
             33926   ~0%    {2} r10 = JOIN r9 WITH Synth#5f134a93::Synth::convertPatternBindingDeclToRaw#1#ff ON FIRST 2 OUTPUT Lhs.3, Lhs.2
             33926   ~2%    {2} r11 = JOIN r10 WITH Synth#5f134a93::Synth::convertPatternFromRaw#1#ff ON FIRST 1 OUTPUT Rhs.1, Lhs.1
             33926   ~1%    {2} r12 = JOIN r11 WITH Element#e67432df::Generated::Element::resolve#ff ON FIRST 1 OUTPUT Lhs.1, Rhs.1
             33926   ~4%    {2} r13 = JOIN r12 WITH Element#e67432df::Generated::Element::resolve#ff ON FIRST 1 OUTPUT Lhs.1, Rhs.1
```

After applying `pragma[only_bind_out]` to `this`:

```
        198815   ~1%    {2} r4 = SCAN Synth#5f134a93::Synth::TPattern#f OUTPUT In.0, In.0
        198815   ~0%    {2} r5 = JOIN r4 WITH Element#e67432df::Generated::Element::resolve#ff_10#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.1
         75626   ~0%    {3} r6 = JOIN r5 WITH PatternBindingDecl#ab5153b9::Generated::PatternBindingDecl::getImmediatePattern#1#dispred#fff_201#join_rhs ON FIRST 1 OUTPUT Rhs.1, Rhs.2, Lhs.1
         33926   ~1%    {2} r7 = JOIN r6 WITH PatternBindingDecl#ab5153b9::Generated::PatternBindingDecl::getImmediateInit#1#dispred#fff ON FIRST 2 OUTPUT Rhs.2, Lhs.2
         33926   ~4%    {2} r8 = JOIN r7 WITH Element#e67432df::Generated::Element::resolve#ff ON FIRST 1 OUTPUT Lhs.1, Rhs.1

```
2023-03-28 14:57:05 +02:00
Jeroen Ketema
3b8ad087eb Make imports of codeql.util.Unit private 2023-03-28 14:14:13 +02:00
Anders Schack-Mulligen
d406b051fc Dataflow: Remove accidentally exposed predicates. 2023-03-28 10:04:21 +02:00
Nora Dimitrijević
239e14b71a Swift: fix QLdoc check for EnumElementExpr.qll 2023-03-27 23:48:37 +02:00
Nora Dimitrijević
41b283c07c Swift: add .some enum content to init? calls
Again, this is hacky; we don't distinguish rigorously between an
optional value and its content (similar to how it was before enum
content flow).
2023-03-27 23:01:25 +02:00
Nora Dimitrijević
03122d76ce Swift: fix a bunch of MISSING dataflow test cases
Optional content flow through constructors remains.
2023-03-27 23:01:25 +02:00
Nora Dimitrijević
6a127264af Swift: distinguish between Pattern.get(Immediate)IdentityPreservingEnclosingPattern 2023-03-27 23:01:25 +02:00
Nora Dimitrijević
7dc793855b Swift: introduce Node.asPattern() 2023-03-27 23:01:24 +02:00
Nora Dimitrijević
a715ebe826 Swift: distinguish Pattern.get(Immediate)EnclosingPattern 2023-03-27 23:01:24 +02:00
Nora Dimitrijević
9353549629 Swift: fixes responding to comments 2023-03-27 23:01:24 +02:00
Nora Dimitrijević
052a008926 Swift: Content-based dataflow through case let 2023-03-27 23:01:24 +02:00
Nora Dimitrijević
5c795632db Swift: add Pattern.getEnclosingPattern() 2023-03-27 23:01:24 +02:00
Nora Dimitrijević
c2e9ffab63 Swift: add EnumElementExpr + Pattern.getMatchingExpr() 2023-03-27 23:01:24 +02:00
Nora Dimitrijević
5419e65e01 Swift: add NamedPattern.getVarDecl() 2023-03-27 23:01:24 +02:00
Nora Dimitrijević
feb8243d5f Swift: move BindingPattern to the hidden AST 2023-03-27 23:01:24 +02:00
Geoffrey White
28998ccafe Merge pull request #12471 from geoffw0/dbsinks2
Swift: Better sinks for swift/cleartext-storage-database
2023-03-27 12:51:13 +01:00
Jeroen Ketema
977f15f8a4 Merge pull request #12649 from jketema/unit
Replace all definitions of `Unit` by `import codeql.util.Unit`
2023-03-27 08:49:50 +02:00
Geoffrey White
c158f8331a Swift: Fix regression. 2023-03-24 14:04:10 +00:00
Anders Schack-Mulligen
85511ba19d Dataflow: Sync 2023-03-24 12:42:06 +01:00
Jeroen Ketema
a87a9438c7 Replace all definitions of Unit by import codeql.util.Unit 2023-03-24 10:39:34 +01:00
Anders Schack-Mulligen
9d88f01c82 Merge pull request #12645 from aschackmull/dataflow/renaming
Dataflow: Rename Make to Global and hasFlow to flow
2023-03-24 08:48:31 +01:00
Anders Schack-Mulligen
d440bc2d0c Dataflow: Sync. 2023-03-23 13:40:23 +01:00
Anders Schack-Mulligen
2761aa73ca Dataflow: Sync. 2023-03-23 13:06:19 +01:00
Geoffrey White
de5cf84bd5 Swift: Address check failures. 2023-03-23 11:08:49 +00:00
Geoffrey White
a5bb93402c Swift: Replace sources with (extendable) CSV. 2023-03-23 10:52:58 +00:00
Geoffrey White
e266132f0a Swift: Replace sinks with (extendable) CSV. 2023-03-23 10:45:29 +00:00
Geoffrey White
4c0d02a87d Swift: Standardize the sources, sinks etc. 2023-03-23 10:39:03 +00:00
Geoffrey White
dfcad7fa84 Swift: Split the query into the usual three files. 2023-03-23 10:39:03 +00:00
Kasper Svendsen
ce6be1f636 Dataflow: Instantiate stage 1 access paths with proper unit type 2023-03-23 08:32:16 +01:00
Anders Schack-Mulligen
b2d436ccc1 Merge pull request #12533 from aschackmull/java/misc-perf
Java/dataflow: Misc performance fixes
2023-03-22 08:39:43 +01:00