@@ -106,6 +106,9 @@ API::Node getExtraSuccessorFromNode(API::Node node, AccessPathToken token) {
106106 or
107107 token .getName ( ) = "Instance" and
108108 result = node .getInstance ( )
109+ or
110+ token .getName ( ) = "BlockArgument" and
111+ result = node .getBlock ( )
109112 // Note: The "ArrayElement" token is not implemented yet, as it ultimately requires type-tracking and
110113 // API graphs to be aware of the steps involving ArrayElement contributed by the standard library model.
111114 // Type-tracking cannot summarize function calls on its own, so it doesn't benefit from synthesized callables.
@@ -143,15 +146,15 @@ InvokeNode getAnInvocationOf(API::Node node) { result = node }
143146 */
144147bindingset [ name]
145148predicate isExtraValidTokenNameInIdentifyingAccessPath ( string name ) {
146- name = [ "Member" , "Method" , "Instance" , "WithBlock" , "WithoutBlock" ]
149+ name = [ "Member" , "Method" , "Instance" , "WithBlock" , "WithoutBlock" , "BlockArgument" ]
147150}
148151
149152/**
150153 * Holds if `name` is a valid name for an access path token with no arguments, occuring
151154 * in an identifying access path.
152155 */
153156predicate isExtraValidNoArgumentTokenInIdentifyingAccessPath ( string name ) {
154- name = [ "Instance" , "WithBlock" , "WithoutBlock" ]
157+ name = [ "Instance" , "WithBlock" , "WithoutBlock" , "BlockArgument" ]
155158}
156159
157160/**
0 commit comments