Skip to content

Commit bf271d7

Browse files
committed
Python: refactor how subclasses are specified
A little more explicit, so less prone to be overlooked when adding a new spec
1 parent 32251a0 commit bf271d7

File tree

1 file changed

+15
-13
lines changed
  • python/ql/src/meta/ClassHierarchy

1 file changed

+15
-13
lines changed

python/ql/src/meta/ClassHierarchy/Find.ql

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ class FlaskMethodViewClasses extends FindSubclassesSpec {
4444

4545
override API::Node getAlreadyModeledClass() { result = Flask::Views::MethodView::subclassRef() }
4646

47-
override FlaskViewClasses getSuperClass() { any() }
47+
override FindSubclassesSpec getSuperClass() { result instanceof FlaskViewClasses }
4848

4949
override string getFullyQualifiedName() { result = "flask.views.MethodView" }
5050
}
@@ -134,7 +134,7 @@ class DjangoHttpResponseRedirect extends FindSubclassesSpec {
134134
result = PrivateDjango::DjangoImpl::DjangoHttp::Response::HttpResponseRedirect::classRef()
135135
}
136136

137-
override DjangoHttpResponse getSuperClass() { any() }
137+
override FindSubclassesSpec getSuperClass() { result instanceof DjangoHttpResponse }
138138

139139
override string getFullyQualifiedName() { result = "django.http.response.HttpResponseRedirect" }
140140
}
@@ -149,7 +149,7 @@ class DjangoHttpResponsePermanentRedirect extends FindSubclassesSpec {
149149
PrivateDjango::DjangoImpl::DjangoHttp::Response::HttpResponsePermanentRedirect::classRef()
150150
}
151151

152-
override DjangoHttpResponse getSuperClass() { any() }
152+
override FindSubclassesSpec getSuperClass() { result instanceof DjangoHttpResponse }
153153

154154
override string getFullyQualifiedName() {
155155
result = "django.http.response.HttpResponsePermanentRedirect"
@@ -163,7 +163,7 @@ class DjangoHttpResponseNotModified extends FindSubclassesSpec {
163163
result = PrivateDjango::DjangoImpl::DjangoHttp::Response::HttpResponseNotModified::classRef()
164164
}
165165

166-
override DjangoHttpResponse getSuperClass() { any() }
166+
override FindSubclassesSpec getSuperClass() { result instanceof DjangoHttpResponse }
167167

168168
override string getFullyQualifiedName() {
169169
result = "django.http.response.HttpResponseNotModified"
@@ -177,7 +177,7 @@ class DjangoHttpResponseBadRequest extends FindSubclassesSpec {
177177
result = PrivateDjango::DjangoImpl::DjangoHttp::Response::HttpResponseBadRequest::classRef()
178178
}
179179

180-
override DjangoHttpResponse getSuperClass() { any() }
180+
override FindSubclassesSpec getSuperClass() { result instanceof DjangoHttpResponse }
181181

182182
override string getFullyQualifiedName() { result = "django.http.response.HttpResponseBadRequest" }
183183
}
@@ -189,7 +189,7 @@ class DjangoHttpResponseNotFound extends FindSubclassesSpec {
189189
result = PrivateDjango::DjangoImpl::DjangoHttp::Response::HttpResponseNotFound::classRef()
190190
}
191191

192-
override DjangoHttpResponse getSuperClass() { any() }
192+
override FindSubclassesSpec getSuperClass() { result instanceof DjangoHttpResponse }
193193

194194
override string getFullyQualifiedName() { result = "django.http.response.HttpResponseNotFound" }
195195
}
@@ -201,7 +201,7 @@ class DjangoHttpResponseForbidden extends FindSubclassesSpec {
201201
result = PrivateDjango::DjangoImpl::DjangoHttp::Response::HttpResponseForbidden::classRef()
202202
}
203203

204-
override DjangoHttpResponse getSuperClass() { any() }
204+
override FindSubclassesSpec getSuperClass() { result instanceof DjangoHttpResponse }
205205

206206
override string getFullyQualifiedName() { result = "django.http.response.HttpResponseForbidden" }
207207
}
@@ -213,7 +213,7 @@ class DjangoHttpResponseNotAllowed extends FindSubclassesSpec {
213213
result = PrivateDjango::DjangoImpl::DjangoHttp::Response::HttpResponseNotAllowed::classRef()
214214
}
215215

216-
override DjangoHttpResponse getSuperClass() { any() }
216+
override FindSubclassesSpec getSuperClass() { result instanceof DjangoHttpResponse }
217217

218218
override string getFullyQualifiedName() { result = "django.http.response.HttpResponseNotAllowed" }
219219
}
@@ -225,7 +225,7 @@ class DjangoHttpResponseGone extends FindSubclassesSpec {
225225
result = PrivateDjango::DjangoImpl::DjangoHttp::Response::HttpResponseGone::classRef()
226226
}
227227

228-
override DjangoHttpResponse getSuperClass() { any() }
228+
override FindSubclassesSpec getSuperClass() { result instanceof DjangoHttpResponse }
229229

230230
override string getFullyQualifiedName() { result = "django.http.response.HttpResponseGone" }
231231
}
@@ -237,7 +237,7 @@ class DjangoHttpResponseServerError extends FindSubclassesSpec {
237237
result = PrivateDjango::DjangoImpl::DjangoHttp::Response::HttpResponseServerError::classRef()
238238
}
239239

240-
override DjangoHttpResponse getSuperClass() { any() }
240+
override FindSubclassesSpec getSuperClass() { result instanceof DjangoHttpResponse }
241241

242242
override string getFullyQualifiedName() {
243243
result = "django.http.response.HttpResponseServerError"
@@ -251,7 +251,7 @@ class DjangoHttpResponseJsonResponse extends FindSubclassesSpec {
251251
result = PrivateDjango::DjangoImpl::DjangoHttp::Response::JsonResponse::classRef()
252252
}
253253

254-
override DjangoHttpResponse getSuperClass() { any() }
254+
override FindSubclassesSpec getSuperClass() { result instanceof DjangoHttpResponse }
255255

256256
override string getFullyQualifiedName() { result = "django.http.response.JsonResponse" }
257257
}
@@ -273,7 +273,9 @@ class DjangoHttpResponseFileResponse extends FindSubclassesSpec {
273273
result = PrivateDjango::DjangoImpl::DjangoHttp::Response::FileResponse::classRef()
274274
}
275275

276-
override DjangoHttpResponseStreamingResponse getSuperClass() { any() }
276+
override FindSubclassesSpec getSuperClass() {
277+
result instanceof DjangoHttpResponseStreamingResponse
278+
}
277279

278280
override string getFullyQualifiedName() { result = "django.http.response.FileResponse" }
279281
}
@@ -401,7 +403,7 @@ class RestFrameworkResponse extends FindSubclassesSpec {
401403

402404
override API::Node getAlreadyModeledClass() { result = RestFramework::Response::classRef() }
403405

404-
override DjangoHttpResponse getSuperClass() { any() }
406+
override FindSubclassesSpec getSuperClass() { result instanceof DjangoHttpResponse }
405407

406408
override string getFullyQualifiedName() { result = "rest_framework.response.Response" }
407409
}

0 commit comments

Comments
 (0)