@@ -148,41 +148,35 @@ private module Flask {
148
148
*
149
149
* See https://flask.palletsprojects.com/en/1.1.x/api/#flask.Flask.route
150
150
*/
151
- private class FlaskAppRouteCall extends FlaskRouteSetup {
152
- CallNode call ;
151
+ private class FlaskAppRouteCall extends FlaskRouteSetup , DataFlow :: CfgNode {
152
+ override CallNode node ;
153
153
154
- FlaskAppRouteCall ( ) {
155
- call .getFunction ( ) = app_attr ( "route" ) .asCfgNode ( ) and
156
- this .asCfgNode ( ) = call
157
- }
154
+ FlaskAppRouteCall ( ) { node .getFunction ( ) = app_attr ( "route" ) .asCfgNode ( ) }
158
155
159
156
override DataFlow:: Node getUrlPatternArg ( ) {
160
- result .asCfgNode ( ) in [ call .getArg ( 0 ) , call .getArgByName ( "rule" ) ]
157
+ result .asCfgNode ( ) in [ node .getArg ( 0 ) , node .getArgByName ( "rule" ) ]
161
158
}
162
159
163
- override Function getARouteHandler ( ) { result .getADecorator ( ) = call . getNode ( ) }
160
+ override Function getARouteHandler ( ) { result .getADecorator ( ) . getAFlowNode ( ) = node }
164
161
}
165
162
166
163
/**
167
164
* A call to `flask.Flask.add_url_rule`.
168
165
*
169
166
* See https://flask.palletsprojects.com/en/1.1.x/api/#flask.Flask.add_url_rule
170
167
*/
171
- private class FlaskAppAddUrlRule extends FlaskRouteSetup {
172
- CallNode call ;
168
+ private class FlaskAppAddUrlRule extends FlaskRouteSetup , DataFlow :: CfgNode {
169
+ override CallNode node ;
173
170
174
- FlaskAppAddUrlRule ( ) {
175
- call .getFunction ( ) = app_attr ( "add_url_rule" ) .asCfgNode ( ) and
176
- this .asCfgNode ( ) = call
177
- }
171
+ FlaskAppAddUrlRule ( ) { node .getFunction ( ) = app_attr ( "add_url_rule" ) .asCfgNode ( ) }
178
172
179
173
override DataFlow:: Node getUrlPatternArg ( ) {
180
- result .asCfgNode ( ) in [ call .getArg ( 0 ) , call .getArgByName ( "rule" ) ]
174
+ result .asCfgNode ( ) in [ node .getArg ( 0 ) , node .getArgByName ( "rule" ) ]
181
175
}
182
176
183
177
override Function getARouteHandler ( ) {
184
178
exists ( DataFlow:: Node view_func_arg , DataFlow:: Node func_src |
185
- view_func_arg .asCfgNode ( ) in [ call .getArg ( 2 ) , call .getArgByName ( "view_func" ) ] and
179
+ view_func_arg .asCfgNode ( ) in [ node .getArg ( 2 ) , node .getArgByName ( "view_func" ) ] and
186
180
DataFlow:: localFlow ( func_src , view_func_arg ) and
187
181
func_src .asExpr ( ) .( CallableExpr ) = result .getDefinition ( )
188
182
)
0 commit comments