Ruby: Add summaries for Hash#deep_merge(!)

This commit is contained in:
Harry Maclean
2022-10-06 14:29:18 +13:00
parent 3dea1d6a60
commit cb37a0e835
2 changed files with 69 additions and 2 deletions

View File

@@ -337,7 +337,11 @@ private class FetchValuesUnknownSummary extends FetchValuesSummary {
}
private class MergeSummary extends SimpleSummarizedCallable {
MergeSummary() { this = "merge" }
MergeSummary() {
// deep_merge is an ActiveSupport extension
// https://api.rubyonrails.org/classes/Hash.html#method-i-deep_merge
this = ["merge", "deep_merge"]
}
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
(
@@ -352,7 +356,11 @@ private class MergeSummary extends SimpleSummarizedCallable {
}
private class MergeBangSummary extends SimpleSummarizedCallable {
MergeBangSummary() { this = ["merge!", "update"] }
MergeBangSummary() {
// deep_merge! is an ActiveSupport extension
// https://api.rubyonrails.org/classes/Hash.html#method-i-deep_merge-21
this = ["merge!", "deep_merge!", "update"]
}
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
(