Skip to content

Commit 781aab3

Browse files
authored
Merge pull request github#11634 from michaelnebel/java/excludeinterfacemembers
Java: Exclude interface members from model generation.
2 parents 8372ad9 + 2ce6d5f commit 781aab3

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

java/ql/src/utils/modelgenerator/internal/CaptureModelsSpecific.qll

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,10 @@ private predicate isRelevantForModels(J::Callable api) {
7272
/**
7373
* Holds if it is relevant to generate models for `api` based on data flow analysis.
7474
*/
75-
predicate isRelevantForDataFlowModels = isRelevantForModels/1;
75+
predicate isRelevantForDataFlowModels(J::Callable api) {
76+
isRelevantForModels(api) and
77+
(not api.getDeclaringType() instanceof J::Interface or exists(api.getBody()))
78+
}
7679

7780
predicate isRelevantForTypeBasedFlowModels = isRelevantForModels/1;
7881

java/ql/test/utils/modelgenerator/dataflow/CaptureNeutralModels.expected

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
| p;FluentAPI$Inner;notThis;(String);generated |
44
| p;ImmutablePojo;getX;();generated |
55
| p;Joiner;length;();generated |
6-
| p;MultipleImpls$Strategy;doSomething;(String);generated |
76
| p;ParamFlow;ignorePrimitiveReturnValue;(String);generated |
87
| p;ParamFlow;mapType;(Class);generated |
98
| p;Pojo;doNotSetValue;(String);generated |

0 commit comments

Comments
 (0)