@@ -3,21 +3,21 @@ import semmle.python.web.Http
33
44
55/** The falcon API class */
6- ClassObject theFalconAPIClass ( ) {
7- result = ModuleObject :: named ( "falcon" ) . attr ( " API")
6+ ClassValue theFalconAPIClass ( ) {
7+ result = Value :: named ( "falcon. API" )
88}
99
1010
1111/** Holds if `route` is routed to `resource`
1212 */
13- private predicate api_route ( CallNode route_call , ControlFlowNode route , ClassObject resource ) {
14- route_call .getFunction ( ) .( AttrNode ) .getObject ( "add_route" ) .refersTo ( _ , theFalconAPIClass ( ) , _ ) and
13+ private predicate api_route ( CallNode route_call , ControlFlowNode route , ClassValue resource ) {
14+ route_call .getFunction ( ) .( AttrNode ) .getObject ( "add_route" ) .pointsTo ( ) . getClass ( ) = theFalconAPIClass ( ) and
1515 route_call .getArg ( 0 ) = route and
16- route_call .getArg ( 1 ) .refersTo ( _ , resource , _ )
16+ route_call .getArg ( 1 ) .pointsTo ( ) . getClass ( ) = resource
1717}
1818
1919private predicate route ( FalconRoute route , Function target , string funcname ) {
20- route .getResourceClass ( ) .lookupAttribute ( "on_" + funcname ) .( FunctionObject ) . getFunction ( ) = target
20+ route .getResourceClass ( ) .lookup ( "on_" + funcname ) .( FunctionValue ) . getScope ( ) = target
2121}
2222
2323class FalconRoute extends ControlFlowNode {
@@ -33,7 +33,7 @@ class FalconRoute extends ControlFlowNode {
3333 )
3434 }
3535
36- ClassObject getResourceClass ( ) {
36+ ClassValue getResourceClass ( ) {
3737 api_route ( this , _, result )
3838 }
3939
0 commit comments