File tree Expand file tree Collapse file tree 2 files changed +15
-4
lines changed Expand file tree Collapse file tree 2 files changed +15
-4
lines changed Original file line number Diff line number Diff line change 1
- class Foo (int , object , metaclass = type ):
1
+ class Foo (int , object , metaclass = type , ** kwargs ):
2
2
x = 5
Original file line number Diff line number Diff line change 1277
1277
attr (@class.inner_scope -> @stmt.node) body = (named-child-index @stmt)
1278
1278
}
1279
1279
1280
- ; Class.bases - using `(_ !name)` as a proxy for all non-keyword arguments.
1280
+ ; Class.bases - using `(_ !value !name)` as a proxy for all non-keyword arguments.
1281
+ ; In particular, `keyword_argument` nodes have a `name` field, and `dictionary_splat`
1282
+ ; nodes have a `value` field.
1281
1283
(class_definition
1282
- superclasses: (argument_list element: (_ !name) @arg)
1284
+ superclasses: (argument_list element: (_ !value ! name) @arg)
1283
1285
) @class
1284
1286
{
1285
1287
edge @class.class_expr -> @arg.node
1286
1288
attr (@class.class_expr -> @arg.node) bases = (named-child-index @arg)
1287
1289
}
1288
1290
1289
- ; Class.keywords
1291
+ ; Class.keywords of the form `foo=bar`
1290
1292
(class_definition
1291
1293
superclasses: (argument_list element: (keyword_argument) @arg)
1292
1294
) @class
1295
1297
attr (@class.class_expr -> @arg.node) keywords = (named-child-index @arg)
1296
1298
}
1297
1299
1300
+ ; Class.keywords of the form `**kwargs`
1301
+ (class_definition
1302
+ superclasses: (argument_list element: (dictionary_splat) @arg)
1303
+ ) @class
1304
+ {
1305
+ edge @class.class_expr -> @arg.node
1306
+ attr (@class.class_expr -> @arg.node) keywords = (named-child-index @arg)
1307
+ }
1308
+
1298
1309
;;;;;; End of Class
1299
1310
1300
1311
;;;;;; Assign statements
You can’t perform that action at this time.
0 commit comments