Skip to content

Commit 6081ba5

Browse files
authored
Merge pull request #17604 from aschackmull/java/neutral-overrides
Java/C#: Add overrides to the interpretation of neutral MaD models.
2 parents cb0b388 + 5c4b4d6 commit 6081ba5

File tree

7 files changed

+1204
-6
lines changed

7 files changed

+1204
-6
lines changed

csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,7 @@ private predicate elementSpec(
318318
or
319319
summaryModel(namespace, type, subtypes, name, signature, ext, _, _, _, _, _)
320320
or
321-
neutralModel(namespace, type, name, signature, _, _) and ext = "" and subtypes = false
321+
neutralModel(namespace, type, name, signature, _, _) and ext = "" and subtypes = true
322322
}
323323

324324
private predicate elementSpec(
@@ -602,7 +602,7 @@ private predicate interpretSummary(
602602
predicate interpretNeutral(UnboundCallable c, string kind, string provenance) {
603603
exists(string namespace, string type, string name, string signature |
604604
neutralModel(namespace, type, name, signature, kind, provenance) and
605-
c = interpretElement(namespace, type, false, name, signature, "")
605+
c = interpretElement(namespace, type, true, name, signature, "")
606606
)
607607
}
608608

csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected

Lines changed: 1198 additions & 0 deletions
Large diffs are not rendered by default.

java/ql/lib/ext/java.lang.model.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,6 @@ extensions:
212212
- ["java.lang", "Object", "equals", "(Object)", "summary", "manual"]
213213
- ["java.lang", "Object", "getClass", "()", "summary", "manual"]
214214
- ["java.lang", "Object", "hashCode", "()", "summary", "manual"]
215-
- ["java.lang", "Object", "toString", "()", "summary", "manual"]
216215
- ["java.lang", "Runtime", "getRuntime", "()", "summary", "manual"]
217216
- ["java.lang", "String", "compareTo", "(String)", "summary", "manual"]
218217
- ["java.lang", "String", "contains", "(CharSequence)", "summary", "manual"]

java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -416,7 +416,7 @@ private predicate elementSpec(
416416
or
417417
summaryModel(package, type, subtypes, name, signature, ext, _, _, _, _, _)
418418
or
419-
neutralModel(package, type, name, signature, _, _) and ext = "" and subtypes = false
419+
neutralModel(package, type, name, signature, _, _) and ext = "" and subtypes = true
420420
}
421421

422422
private string getNestedName(Type t) {

java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ module Input implements InputSig<Location, DataFlowImplSpecific::JavaDataFlow> {
3434
) {
3535
exists(string namespace, string type, string name, string signature |
3636
neutralModel(namespace, type, name, signature, kind, provenance) and
37-
c.asCallable() = interpretElement(namespace, type, false, name, signature, "", isExact)
37+
c.asCallable() = interpretElement(namespace, type, true, name, signature, "", isExact)
3838
)
3939
}
4040

java/ql/src/utils/modeleditor/ModelEditor.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ class Endpoint extends Callable {
7777
predicate isNeutral() {
7878
exists(string namespace, string type, string name, string signature |
7979
neutralModel(namespace, type, name, signature, _, _) and
80-
this = interpretElement(namespace, type, false, name, signature, "", _)
80+
this = interpretElement(namespace, type, true, name, signature, "", _)
8181
)
8282
}
8383

java/ql/test/ext/TopJdkApis/TopJdkApisTest.expected

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
| java.lang.Object#toString() | no manual model |
12
| java.lang.Runnable#run() | no manual model |
23
| java.util.Comparator#comparing(Function) | no manual model |
34
| java.util.function.BiConsumer#accept(Object,Object) | no manual model |

0 commit comments

Comments
 (0)