@@ -90,7 +90,8 @@ private module FastApi {
9090 private class PydanticModelRequestHandlerParam extends Pydantic:: BaseModel:: InstanceSource ,
9191 DataFlow:: ParameterNode {
9292 PydanticModelRequestHandlerParam ( ) {
93- this .getParameter ( ) .getAnnotation ( ) = Pydantic:: BaseModel:: subclassRef ( ) .getAUse ( ) .asExpr ( ) and
93+ this .getParameter ( ) .getAnnotation ( ) =
94+ Pydantic:: BaseModel:: subclassRef ( ) .getAValueReachableFromSource ( ) .asExpr ( ) and
9495 any ( FastApiRouteSetup rs ) .getARequestHandler ( ) .getArgByName ( _) = this .getParameter ( )
9596 }
9697 }
@@ -104,7 +105,8 @@ private module FastApi {
104105 private class WebSocketRequestHandlerParam extends Starlette:: WebSocket:: InstanceSource ,
105106 DataFlow:: ParameterNode {
106107 WebSocketRequestHandlerParam ( ) {
107- this .getParameter ( ) .getAnnotation ( ) = Starlette:: WebSocket:: classRef ( ) .getAUse ( ) .asExpr ( ) and
108+ this .getParameter ( ) .getAnnotation ( ) =
109+ Starlette:: WebSocket:: classRef ( ) .getAValueReachableFromSource ( ) .asExpr ( ) and
108110 any ( FastApiRouteSetup rs ) .getARequestHandler ( ) .getArgByName ( _) = this .getParameter ( )
109111 }
110112 }
@@ -165,7 +167,7 @@ private module FastApi {
165167 // user-defined subclasses
166168 exists ( Class cls , API:: Node base |
167169 base = getModeledResponseClass ( _) .getASubclass * ( ) and
168- cls .getABase ( ) = base .getAUse ( ) .asExpr ( ) and
170+ cls .getABase ( ) = base .getAValueReachableFromSource ( ) .asExpr ( ) and
169171 responseClass .asSource ( ) .asExpr ( ) = cls .getParent ( )
170172 |
171173 exists ( Assign assign | assign = cls .getAStmt ( ) |
@@ -257,7 +259,7 @@ private module FastApi {
257259
258260 override string getMimetypeDefault ( ) {
259261 exists ( API:: Node responseClass |
260- responseClass .getAUse ( ) = routeSetup .getResponseClassArg ( ) and
262+ responseClass .getAValueReachableFromSource ( ) = routeSetup .getResponseClassArg ( ) and
261263 result = getDefaultMimeType ( responseClass )
262264 )
263265 or
@@ -274,7 +276,7 @@ private module FastApi {
274276 FileSystemAccess:: Range {
275277 FastApiRequestHandlerFileResponseReturn ( ) {
276278 exists ( API:: Node responseClass |
277- responseClass .getAUse ( ) = routeSetup .getResponseClassArg ( ) and
279+ responseClass .getAValueReachableFromSource ( ) = routeSetup .getResponseClassArg ( ) and
278280 responseClass = getModeledResponseClass ( "FileResponse" ) .getASubclass * ( )
279281 )
280282 }
@@ -292,7 +294,7 @@ private module FastApi {
292294 HTTP:: Server:: HttpRedirectResponse:: Range {
293295 FastApiRequestHandlerRedirectReturn ( ) {
294296 exists ( API:: Node responseClass |
295- responseClass .getAUse ( ) = routeSetup .getResponseClassArg ( ) and
297+ responseClass .getAValueReachableFromSource ( ) = routeSetup .getResponseClassArg ( ) and
296298 responseClass = getModeledResponseClass ( "RedirectResponse" ) .getASubclass * ( )
297299 )
298300 }
@@ -311,7 +313,7 @@ private module FastApi {
311313 class RequestHandlerParam extends InstanceSource , DataFlow:: ParameterNode {
312314 RequestHandlerParam ( ) {
313315 this .getParameter ( ) .getAnnotation ( ) =
314- getModeledResponseClass ( _) .getASubclass * ( ) .getAUse ( ) .asExpr ( ) and
316+ getModeledResponseClass ( _) .getASubclass * ( ) .getAValueReachableFromSource ( ) .asExpr ( ) and
315317 any ( FastApiRouteSetup rs ) .getARequestHandler ( ) .getArgByName ( _) = this .getParameter ( )
316318 }
317319 }
0 commit comments