Michael Nebel
82294c1349
Merge pull request #10622 from michaelnebel/ruby/postupdateassignexpr
...
Ruby: Postupdate notes for assignment expressions.
2022-09-30 10:00:02 +02:00
Harry Maclean
4a39bc8f47
Merge pull request #10598 from hmac/hmac/actioncontroller-metal
...
Ruby: Identify ActionController::Metal controllers
2022-09-30 13:07:03 +13:00
Tom Hvitved
a5fbe751f1
Ruby: Reduce size of input predicate for non-linear recursion
...
Before, we would be recursive in all of `MethodCall::getMethodName`:
```
Evaluated named local Synthesis#d9ff06b1::AssignOperationDesugar::SetterAssignOperation::getCallKind#ffff#shared#3@Synthesi in 9803ms on iteration 14 (size: 31006941).
Evaluated relational algebra for predicate Synthesis#d9ff06b1::AssignOperationDesugar::SetterAssignOperation::getCallKind#ffff#shared#3@Synthesi on iteration 14 running pipeline main with tuple counts:
256419 ~1% {2} r1 = SCAN Call#841c84e8::MethodCall::getMethodName#0#dispred#ff#prev_delta OUTPUT In.1, In.0
31006941 ~8% {4} r2 = JOIN r1 WITH Synthesis#d9ff06b1::MethodCallKind#ffff#prev ON FIRST 1 OUTPUT Lhs.1, Rhs.1, Rhs.2, Rhs.3
return r2
```
Now, we have restricted that to only the relevant method names.
2022-09-29 15:59:11 +02:00
Asger F
ae60b0ae6d
Ruby: ensure pruning works with startInContent
2022-09-29 15:54:51 +02:00
Michael Nebel
dd0f19d0b0
Ruby: Update expected test output.
2022-09-29 14:12:20 +02:00
Michael Nebel
999eb19c3d
Ruby: Support postupdate notes for assignment expressions.
2022-09-29 14:12:20 +02:00
Asger F
f1de5a2ffd
Ruby: Restrict summaries and type trackers to relevant contents
2022-09-29 14:10:09 +02:00
Tom Hvitved
1fcd22b0f6
Merge pull request #10621 from hvitved/ruby/fix-bad-join
...
Ruby: Fix bad join-order
2022-09-29 13:56:18 +02:00
Michael Nebel
af4db77046
Ruby: Update expected test output.
2022-09-29 13:54:59 +02:00
Michael Nebel
9ee831a378
Ruby: Add (failing) test case for flow out via assignment expression.
2022-09-29 13:54:32 +02:00
Asger F
dc03557aea
Merge branch 'main' into rb/summarize-loads-v2
2022-09-29 12:07:30 +02:00
Tom Hvitved
2bf087677f
Ruby: Fix bad join-order
...
Before
```
Evaluated relational algebra for predicate DataFlowDispatch#36b84300::mayBenefitFromCallContext1#6#ffffff@ba617c9q with tuple counts:
1066626 ~2% {3} r1 = SCAN project#Module#fe82a56b::Cached::lookupMethod#2 OUTPUT In.0, In.0, In.1
931393128 ~0% {4} r2 = JOIN r1 WITH DataFlowDispatch#36b84300::isInstanceLocalMustFlow#3#fff_102#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.2, Lhs.1, Rhs.2
298573 ~0% {6} r3 = JOIN r2 WITH DataFlowDispatch#36b84300::mayBenefitFromCallContext0#5#fffff_14023#join_rhs ON FIRST 2 OUTPUT Rhs.2, Rhs.3, Rhs.4, Lhs.2, Lhs.3, Lhs.1
return r3
```
After
```
Evaluated relational algebra for predicate DataFlowDispatch#36b84300::mayBenefitFromCallContext1#6#ffffff@f68de4dn with tuple counts:
583298 ~1% {5} r1 = SCAN DataFlowDispatch#36b84300::mayBenefitFromCallContext0#5#fffff OUTPUT In.1, In.0, In.2, In.3, In.4
583298 ~1% {5} r2 = JOIN r1 WITH DataFlowPrivate#462ff392::ArgumentNode#class#f ON FIRST 1 OUTPUT Lhs.0, Lhs.1, Lhs.2, Lhs.3, Lhs.4
442278 ~0% {6} r3 = JOIN r2 WITH DataFlowDispatch#36b84300::isInstanceLocalMustFlow#3#fff ON FIRST 1 OUTPUT Rhs.1, Lhs.4, Lhs.1, Lhs.2, Lhs.3, Rhs.2
298573 ~0% {6} r4 = JOIN r3 WITH project#Module#fe82a56b::Cached::lookupMethod#2 ON FIRST 2 OUTPUT Lhs.2, Lhs.3, Lhs.4, Lhs.0, Lhs.5, Lhs.1
return r4
```
2022-09-29 12:00:26 +02:00
Tom Hvitved
e9b96c19b8
Ruby: Account for protected methods in call graph
2022-09-29 11:58:04 +02:00
Asger F
296c0a7925
Merge pull request #10603 from asgerf/type-model-api-node
...
Add TypeModel.getAnApiNode
2022-09-29 11:39:09 +02:00
Tom Hvitved
58b7556bdf
Ruby: Add call graph tests for protected methods
2022-09-29 11:37:35 +02:00
Alex Ford
4ed4d31efd
Delete 2022-09-23-yaml-load-file.md
2022-09-28 21:44:58 +01:00
Harry Maclean
0e5aa97c46
Fix changenote month
2022-09-29 09:24:42 +13:00
Harry Maclean
76cfd44478
Add change note
2022-09-29 09:24:42 +13:00
Harry Maclean
4217a50900
Treat ActiveRecord.create as a model instantiation
2022-09-29 09:24:42 +13:00
Harry Maclean
424f31a24a
Add test for AR Model.create instantiations
...
These currently aren't recognised.
2022-09-29 09:24:42 +13:00
Harry Maclean
63309150e0
Make some space
2022-09-29 09:24:37 +13:00
Harry Maclean
e7d19e849f
Merge pull request #10090 from hmac/hmac/activestorage
...
Ruby: Model Activestorage
2022-09-29 09:16:25 +13:00
Harry Maclean
0ce0ada4df
Merge pull request #10002 from hmac/hmac/protected-methods
...
Ruby: Model protected methods
2022-09-29 08:39:29 +13:00
Tom Hvitved
3af3772041
Ruby: Include With(out)Element in isElementBody
2022-09-28 16:51:20 +02:00
Asger F
76cab235d9
Ruby: reuse argumentPositionMatch
2022-09-28 15:24:48 +02:00
Asger F
8704ccee77
Ruby: mention TNoContentSet is only used by type-tracking
2022-09-28 15:18:09 +02:00
Asger F
65de5d014c
Ruby: add test case
2022-09-28 12:23:58 +02:00
Asger F
c8162f80bf
Ruby: add TypeModel.getAnApiNode
2022-09-28 12:17:10 +02:00
Asger F
a48b893ed6
Merge pull request #10588 from asgerf/rb/rbi-instantiated-type
...
Ruby: add RbiInstantiatedType
2022-09-28 11:51:20 +02:00
Asger F
fea47c85f3
Ruby: expand on type-tracking test a bit
2022-09-28 11:40:55 +02:00
Asger F
971657245d
Ruby: update API graph inline test to match output
2022-09-28 11:17:13 +02:00
Tom Hvitved
99b2df0605
Ruby: Make get(Explicit)VisibilityModifier private
2022-09-28 11:16:13 +02:00
Asger F
ce1c258273
Ruby: Update TypeTracker.expected
2022-09-28 11:15:25 +02:00
Asger F
ee7dea1ab6
Merge branch 'main' into rb/summarize-loads-v2
...
This only fixes superficial conflicts with
https://github.com/github/codeql/pull/10574
semantic conflicts will be addressed in later commits
2022-09-28 11:11:44 +02:00
Asger F
e56630a485
Ruby: add missing qldoc
2022-09-28 10:49:34 +02:00
Asger F
e1dfed0fcb
Ruby: move OptionalContentSet to TypeTrackerSpecific.qll
2022-09-28 10:49:34 +02:00
Asger F
14e384aaa2
Ruby: remove unneeded import
2022-09-28 10:49:34 +02:00
Asger F
ce3665d50e
Ruby: remove unneeded qualified AST import
2022-09-28 10:49:34 +02:00
Asger F
665ee81967
Ruby: revert trackUseNode to idiomatic type-tracking
...
The optimizations done here now seem to backfire and cause more problems than they fix.
2022-09-28 10:49:34 +02:00
Asger F
032847f331
Ruby: inline getContents
2022-09-28 10:49:34 +02:00
Asger F
e09a5e87dd
Ruby: clarify what getAnElement() does
2022-09-28 10:49:34 +02:00
Asger F
588b31d15d
Ruby: fix another typo
2022-09-28 10:49:34 +02:00
Asger F
a7b92295a2
Ruby: fix a typo
2022-09-28 10:49:34 +02:00
Asger F
7dfa58b50d
Remove Content::NoContent
2022-09-28 10:49:34 +02:00
Asger F
dd23e125e5
Rename TypeTrackerContentSet -> TypeTrackerContent
2022-09-28 10:49:34 +02:00
Asger F
6abf77d40d
Factor comparison into compatibleContents
2022-09-28 10:49:34 +02:00
Asger F
85d0c63ec7
Ruby: store a ContentSet on type tracker instances
2022-09-28 10:49:34 +02:00
Asger F
a5ed3d791b
Ruby: expand test case to reveal mismatching forward/backward flow
2022-09-28 10:49:34 +02:00
Asger F
e47deaffbf
Ruby: More QLDoc police
2022-09-28 10:49:34 +02:00
Asger F
7737e75427
Update some QLDoc comments
2022-09-28 10:49:34 +02:00