|
2 | 2 |
|
3 | 3 | import codeql.ruby.AST |
4 | 4 | import codeql.ruby.DataFlow |
5 | | -private import codeql.ruby.frameworks.data.ModelsAsData |
6 | | -private import codeql.ruby.ApiGraphs |
7 | 5 | private import internal.FlowSummaryImpl as Impl |
8 | 6 | private import internal.DataFlowDispatch |
9 | 7 | private import internal.DataFlowPrivate |
10 | 8 |
|
11 | 9 | // import all instances below |
12 | 10 | private module Summaries { |
13 | 11 | private import codeql.ruby.Frameworks |
| 12 | + private import codeql.ruby.frameworks.data.ModelsAsData |
14 | 13 | } |
15 | 14 |
|
16 | 15 | class SummaryComponent = Impl::Public::SummaryComponent; |
@@ -144,33 +143,3 @@ abstract class SimpleSummarizedCallable extends SummarizedCallable { |
144 | 143 | } |
145 | 144 |
|
146 | 145 | class RequiredSummaryComponentStack = Impl::Public::RequiredSummaryComponentStack; |
147 | | - |
148 | | -private class SummarizedCallableFromModel extends SummarizedCallable { |
149 | | - string package; |
150 | | - string type; |
151 | | - string path; |
152 | | - |
153 | | - SummarizedCallableFromModel() { |
154 | | - ModelOutput::relevantSummaryModel(package, type, path, _, _, _) and |
155 | | - this = package + ";" + type + ";" + path |
156 | | - } |
157 | | - |
158 | | - override Call getACall() { |
159 | | - exists(API::MethodAccessNode base | |
160 | | - ModelOutput::resolvedSummaryBase(package, type, path, base) and |
161 | | - result = base.getCallNode().asExpr().getExpr() |
162 | | - ) |
163 | | - } |
164 | | - |
165 | | - override predicate propagatesFlowExt(string input, string output, boolean preservesValue) { |
166 | | - exists(string kind | |
167 | | - ModelOutput::relevantSummaryModel(package, type, path, input, output, kind) |
168 | | - | |
169 | | - kind = "value" and |
170 | | - preservesValue = true |
171 | | - or |
172 | | - kind = "taint" and |
173 | | - preservesValue = false |
174 | | - ) |
175 | | - } |
176 | | -} |
0 commit comments