Skip to content
This repository was archived by the owner on Mar 8, 2020. It is now read-only.

Commit 1908ca8

Browse files
authored
Merge pull request #137 from juanjux/fix/qualified_calls
Fixed Qualified role being applied to last item in composed function call.
2 parents 0187db8 + 638d02d commit 1908ca8

13 files changed

+338
-235
lines changed

driver/normalizer/annotation.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -186,12 +186,11 @@ var AnnotationRules = On(Any).Self(
186186

187187
// a.b.c ("a" and "b" will be Qualified, "c" will be just Identifier). Python does the
188188
// reverse thing
189-
On(pyast.Attribute).Self(
190-
On(HasProperty("ctx", "Load")).Roles(uast.Qualified, uast.Identifier, uast.Expression),
191-
On(HasProperty("ctx", "Store")).Roles(uast.Identifier, uast.Expression),
189+
On(pyast.Attribute).Roles(uast.Identifier, uast.Expression).Self(
192190
On(HasChild(pyast.Name)).Children(
193-
On(Any).Roles(uast.Qualified), // Identifier and Expr added on all Name(s) below
191+
On(pyast.Name).Roles(uast.Qualified), // Identifier and Expr added on all Name(s) below
194192
),
193+
On(HasInternalRole("value")).Roles(uast.Qualified),
195194
),
196195

197196
On(pyast.Expression).Roles(uast.Expression),

fixtures/classdef.py.uast

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,7 @@ Module {
354354
. . . . . . . . . . . }
355355
. . . . . . . . . . . Children: {
356356
. . . . . . . . . . . . 0: Attribute {
357-
. . . . . . . . . . . . . Roles: Qualified,Identifier,Expression
357+
. . . . . . . . . . . . . Roles: Identifier,Expression,Qualified
358358
. . . . . . . . . . . . . TOKEN "_a"
359359
. . . . . . . . . . . . . StartPosition: {
360360
. . . . . . . . . . . . . . Offset: 162
@@ -609,7 +609,7 @@ Module {
609609
. . . . . . . . . }
610610
. . . . . . . . . Children: {
611611
. . . . . . . . . . 0: Attribute {
612-
. . . . . . . . . . . Roles: Qualified,Identifier,Expression
612+
. . . . . . . . . . . Roles: Identifier,Expression
613613
. . . . . . . . . . . TOKEN "setter"
614614
. . . . . . . . . . . StartPosition: {
615615
. . . . . . . . . . . . Offset: 173
@@ -846,7 +846,7 @@ Module {
846846
. . . . . }
847847
. . . . . Children: {
848848
. . . . . . 0: Attribute {
849-
. . . . . . . Roles: Qualified,Identifier,Expression
849+
. . . . . . . Roles: Identifier,Expression,Qualified
850850
. . . . . . . TOKEN "f"
851851
. . . . . . . StartPosition: {
852852
. . . . . . . . Offset: 252
@@ -864,7 +864,7 @@ Module {
864864
. . . . . . . }
865865
. . . . . . . Children: {
866866
. . . . . . . . 0: Attribute {
867-
. . . . . . . . . Roles: Qualified,Identifier,Expression
867+
. . . . . . . . . Roles: Identifier,Expression,Qualified
868868
. . . . . . . . . TOKEN "e"
869869
. . . . . . . . . StartPosition: {
870870
. . . . . . . . . . Offset: 250
@@ -882,7 +882,7 @@ Module {
882882
. . . . . . . . . }
883883
. . . . . . . . . Children: {
884884
. . . . . . . . . . 0: Attribute {
885-
. . . . . . . . . . . Roles: Qualified,Identifier,Expression
885+
. . . . . . . . . . . Roles: Identifier,Expression,Qualified
886886
. . . . . . . . . . . TOKEN "d"
887887
. . . . . . . . . . . StartPosition: {
888888
. . . . . . . . . . . . Offset: 248
@@ -900,7 +900,7 @@ Module {
900900
. . . . . . . . . . . }
901901
. . . . . . . . . . . Children: {
902902
. . . . . . . . . . . . 0: Attribute {
903-
. . . . . . . . . . . . . Roles: Qualified,Identifier,Expression
903+
. . . . . . . . . . . . . Roles: Identifier,Expression,Qualified
904904
. . . . . . . . . . . . . TOKEN "c"
905905
. . . . . . . . . . . . . StartPosition: {
906906
. . . . . . . . . . . . . . Offset: 246
@@ -918,7 +918,7 @@ Module {
918918
. . . . . . . . . . . . . }
919919
. . . . . . . . . . . . . Children: {
920920
. . . . . . . . . . . . . . 0: Attribute {
921-
. . . . . . . . . . . . . . . Roles: Qualified,Identifier,Expression
921+
. . . . . . . . . . . . . . . Roles: Identifier,Expression,Qualified
922922
. . . . . . . . . . . . . . . TOKEN "b"
923923
. . . . . . . . . . . . . . . StartPosition: {
924924
. . . . . . . . . . . . . . . . Offset: 244
@@ -1024,7 +1024,7 @@ Module {
10241024
. . . . . . . }
10251025
. . . . . . }
10261026
. . . . . . 1: Attribute {
1027-
. . . . . . . Roles: Call,Callee,Qualified,Identifier,Expression
1027+
. . . . . . . Roles: Call,Callee,Identifier,Expression
10281028
. . . . . . . TOKEN "method"
10291029
. . . . . . . StartPosition: {
10301030
. . . . . . . . Offset: 262

fixtures/functioncalls.py.uast

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ Module {
176176
. . . . . . . }
177177
. . . . . . }
178178
. . . . . . 3: Attribute {
179-
. . . . . . . Roles: Call,Callee,Qualified,Identifier,Expression
179+
. . . . . . . Roles: Call,Callee,Identifier,Expression
180180
. . . . . . . TOKEN "qualifiedCall"
181181
. . . . . . . StartPosition: {
182182
. . . . . . . . Offset: 44

fixtures/issue130.py.uast

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ Module {
5757
. . . . . . . . . }
5858
. . . . . . . . }
5959
. . . . . . . . 1: Attribute {
60-
. . . . . . . . . Roles: Call,Callee,Qualified,Identifier,Expression
60+
. . . . . . . . . Roles: Call,Callee,Identifier,Expression
6161
. . . . . . . . . TOKEN "basename"
6262
. . . . . . . . . StartPosition: {
6363
. . . . . . . . . . Offset: 21
@@ -75,7 +75,7 @@ Module {
7575
. . . . . . . . . }
7676
. . . . . . . . . Children: {
7777
. . . . . . . . . . 0: Attribute {
78-
. . . . . . . . . . . Roles: Call,Receiver,Qualified,Identifier,Expression
78+
. . . . . . . . . . . Roles: Call,Receiver,Identifier,Expression,Qualified
7979
. . . . . . . . . . . TOKEN "path"
8080
. . . . . . . . . . . StartPosition: {
8181
. . . . . . . . . . . . Offset: 16
@@ -117,7 +117,7 @@ Module {
117117
. . . . . . . }
118118
. . . . . . }
119119
. . . . . . 1: Attribute {
120-
. . . . . . . Roles: Call,Callee,Qualified,Identifier,Expression
120+
. . . . . . . Roles: Call,Callee,Identifier,Expression
121121
. . . . . . . TOKEN "which"
122122
. . . . . . . StartPosition: {
123123
. . . . . . . . Offset: 7
@@ -244,7 +244,7 @@ Module {
244244
. . . . . . . . . }
245245
. . . . . . . . }
246246
. . . . . . . . 3: Attribute {
247-
. . . . . . . . . Roles: Call,Callee,Qualified,Identifier,Expression
247+
. . . . . . . . . Roles: Call,Callee,Identifier,Expression
248248
. . . . . . . . . TOKEN "join"
249249
. . . . . . . . . StartPosition: {
250250
. . . . . . . . . . Offset: 63
@@ -262,7 +262,7 @@ Module {
262262
. . . . . . . . . }
263263
. . . . . . . . . Children: {
264264
. . . . . . . . . . 0: Attribute {
265-
. . . . . . . . . . . Roles: Call,Receiver,Qualified,Identifier,Expression
265+
. . . . . . . . . . . Roles: Call,Receiver,Identifier,Expression,Qualified
266266
. . . . . . . . . . . TOKEN "path"
267267
. . . . . . . . . . . StartPosition: {
268268
. . . . . . . . . . . . Offset: 58
@@ -322,7 +322,7 @@ Module {
322322
. . . . . . . }
323323
. . . . . . }
324324
. . . . . . 2: Attribute {
325-
. . . . . . . Roles: Call,Callee,Qualified,Identifier,Expression
325+
. . . . . . . Roles: Call,Callee,Identifier,Expression
326326
. . . . . . . TOKEN "copyfile"
327327
. . . . . . . StartPosition: {
328328
. . . . . . . . Offset: 46
@@ -432,7 +432,7 @@ Module {
432432
. . . . . . . . . }
433433
. . . . . . . . }
434434
. . . . . . . . 1: Attribute {
435-
. . . . . . . . . Roles: Call,Callee,Qualified,Identifier,Expression
435+
. . . . . . . . . Roles: Call,Callee,Identifier,Expression
436436
. . . . . . . . . TOKEN "abspath"
437437
. . . . . . . . . StartPosition: {
438438
. . . . . . . . . . Offset: 133
@@ -450,7 +450,7 @@ Module {
450450
. . . . . . . . . }
451451
. . . . . . . . . Children: {
452452
. . . . . . . . . . 0: Attribute {
453-
. . . . . . . . . . . Roles: Call,Receiver,Qualified,Identifier,Expression
453+
. . . . . . . . . . . Roles: Call,Receiver,Identifier,Expression,Qualified
454454
. . . . . . . . . . . TOKEN "path"
455455
. . . . . . . . . . . StartPosition: {
456456
. . . . . . . . . . . . Offset: 128
@@ -492,7 +492,7 @@ Module {
492492
. . . . . . . }
493493
. . . . . . }
494494
. . . . . . 2: Attribute {
495-
. . . . . . . Roles: Call,Callee,Qualified,Identifier,Expression
495+
. . . . . . . Roles: Call,Callee,Identifier,Expression
496496
. . . . . . . TOKEN "info"
497497
. . . . . . . StartPosition: {
498498
. . . . . . . . Offset: 104

fixtures/issue30.py.uast

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ Module {
6767
. . . . . . . }
6868
. . . . . . }
6969
. . . . . . 1: Attribute {
70-
. . . . . . . Roles: Call,Callee,Qualified,Identifier,Expression
70+
. . . . . . . Roles: Call,Callee,Identifier,Expression
7171
. . . . . . . TOKEN "write"
7272
. . . . . . . StartPosition: {
7373
. . . . . . . . Offset: 22
@@ -85,7 +85,7 @@ Module {
8585
. . . . . . . }
8686
. . . . . . . Children: {
8787
. . . . . . . . 0: Attribute {
88-
. . . . . . . . . Roles: Call,Receiver,Qualified,Identifier,Expression
88+
. . . . . . . . . Roles: Call,Receiver,Identifier,Expression,Qualified
8989
. . . . . . . . . TOKEN "stdout"
9090
. . . . . . . . . StartPosition: {
9191
. . . . . . . . . . Offset: 15

fixtures/issue51.py.uast

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ Module {
2828
. . . . . }
2929
. . . . . Children: {
3030
. . . . . . 0: Attribute {
31-
. . . . . . . Roles: Call,Callee,Qualified,Identifier,Expression
31+
. . . . . . . Roles: Call,Callee,Identifier,Expression
3232
. . . . . . . TOKEN "figure"
3333
. . . . . . . StartPosition: {
3434
. . . . . . . . Offset: 4

fixtures/issue62_b.py.uast

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -618,7 +618,7 @@ Module {
618618
. . . . . . . . . . . . . . . . . . . . . . . }
619619
. . . . . . . . . . . . . . . . . . . . . . . Children: {
620620
. . . . . . . . . . . . . . . . . . . . . . . . 0: Attribute {
621-
. . . . . . . . . . . . . . . . . . . . . . . . . Roles: Qualified,Identifier,Expression
621+
. . . . . . . . . . . . . . . . . . . . . . . . . Roles: Identifier,Expression,Qualified
622622
. . . . . . . . . . . . . . . . . . . . . . . . . TOKEN "token"
623623
. . . . . . . . . . . . . . . . . . . . . . . . . StartPosition: {
624624
. . . . . . . . . . . . . . . . . . . . . . . . . . Offset: 469
@@ -716,7 +716,7 @@ Module {
716716
. . . . . . . . . . . . . . . . . . . }
717717
. . . . . . . . . . . . . . . . . . . Children: {
718718
. . . . . . . . . . . . . . . . . . . . 0: Attribute {
719-
. . . . . . . . . . . . . . . . . . . . . Roles: Qualified,Identifier,Expression
719+
. . . . . . . . . . . . . . . . . . . . . Roles: Identifier,Expression
720720
. . . . . . . . . . . . . . . . . . . . . TOKEN "roles"
721721
. . . . . . . . . . . . . . . . . . . . . StartPosition: {
722722
. . . . . . . . . . . . . . . . . . . . . . Offset: 436
@@ -844,7 +844,7 @@ Module {
844844
. . . . . . . . . . . . . . . . . . . }
845845
. . . . . . . . . . . . . . . . . . }
846846
. . . . . . . . . . . . . . . . . . 2: Attribute {
847-
. . . . . . . . . . . . . . . . . . . Roles: Call,Callee,Qualified,Identifier,Expression
847+
. . . . . . . . . . . . . . . . . . . Roles: Call,Callee,Identifier,Expression
848848
. . . . . . . . . . . . . . . . . . . TOKEN "collect_id_cnt"
849849
. . . . . . . . . . . . . . . . . . . StartPosition: {
850850
. . . . . . . . . . . . . . . . . . . . Offset: 498
@@ -888,7 +888,7 @@ Module {
888888
. . . . . . . . . . . . . }
889889
. . . . . . . . . . . . }
890890
. . . . . . . . . . . . 1: Attribute {
891-
. . . . . . . . . . . . . Roles: Qualified,Identifier,Expression,For
891+
. . . . . . . . . . . . . Roles: Identifier,Expression,For
892892
. . . . . . . . . . . . . TOKEN "children"
893893
. . . . . . . . . . . . . StartPosition: {
894894
. . . . . . . . . . . . . . Offset: 387
@@ -1211,7 +1211,7 @@ Module {
12111211
. . . . . . . . . . . . . . . . . . . . . }
12121212
. . . . . . . . . . . . . . . . . . . . . Children: {
12131213
. . . . . . . . . . . . . . . . . . . . . . 0: Attribute {
1214-
. . . . . . . . . . . . . . . . . . . . . . . Roles: Function,Call,Positional,Argument,Name,Qualified,Identifier,Expression
1214+
. . . . . . . . . . . . . . . . . . . . . . . Roles: Function,Call,Positional,Argument,Name,Identifier,Expression
12151215
. . . . . . . . . . . . . . . . . . . . . . . TOKEN "filepath"
12161216
. . . . . . . . . . . . . . . . . . . . . . . StartPosition: {
12171217
. . . . . . . . . . . . . . . . . . . . . . . . Offset: 671
@@ -1371,7 +1371,7 @@ Module {
13711371
. . . . . . . . . . . . . . . . . }
13721372
. . . . . . . . . . . . . . . . . Children: {
13731373
. . . . . . . . . . . . . . . . . . 0: Attribute {
1374-
. . . . . . . . . . . . . . . . . . . Roles: Function,Call,Positional,Argument,Name,Qualified,Identifier,Expression
1374+
. . . . . . . . . . . . . . . . . . . Roles: Function,Call,Positional,Argument,Name,Identifier,Expression
13751375
. . . . . . . . . . . . . . . . . . . TOKEN "uast"
13761376
. . . . . . . . . . . . . . . . . . . StartPosition: {
13771377
. . . . . . . . . . . . . . . . . . . . Offset: 764
@@ -1389,7 +1389,7 @@ Module {
13891389
. . . . . . . . . . . . . . . . . . . }
13901390
. . . . . . . . . . . . . . . . . . . Children: {
13911391
. . . . . . . . . . . . . . . . . . . . 0: Attribute {
1392-
. . . . . . . . . . . . . . . . . . . . . Roles: Qualified,Identifier,Expression
1392+
. . . . . . . . . . . . . . . . . . . . . Roles: Identifier,Expression,Qualified
13931393
. . . . . . . . . . . . . . . . . . . . . TOKEN "response"
13941394
. . . . . . . . . . . . . . . . . . . . . StartPosition: {
13951395
. . . . . . . . . . . . . . . . . . . . . . Offset: 755
@@ -1447,7 +1447,7 @@ Module {
14471447
. . . . . . . . . . . . . . . . . . . }
14481448
. . . . . . . . . . . . . . . . . . }
14491449
. . . . . . . . . . . . . . . . . . 2: Attribute {
1450-
. . . . . . . . . . . . . . . . . . . Roles: Call,Callee,Qualified,Identifier,Expression
1450+
. . . . . . . . . . . . . . . . . . . Roles: Call,Callee,Identifier,Expression
14511451
. . . . . . . . . . . . . . . . . . . TOKEN "collect_id_cnt"
14521452
. . . . . . . . . . . . . . . . . . . StartPosition: {
14531453
. . . . . . . . . . . . . . . . . . . . Offset: 730
@@ -1812,7 +1812,7 @@ Module {
18121812
. . . . . . . . . . . }
18131813
. . . . . . . . . . }
18141814
. . . . . . . . . . 1: Attribute {
1815-
. . . . . . . . . . . Roles: Call,Callee,Qualified,Identifier,Expression
1815+
. . . . . . . . . . . Roles: Call,Callee,Identifier,Expression
18161816
. . . . . . . . . . . TOKEN "convert_repository"
18171817
. . . . . . . . . . . StartPosition: {
18181818
. . . . . . . . . . . . Offset: 950

fixtures/issue76.py.uast

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ Module {
7777
. . . . . . . . . . . . . }
7878
. . . . . . . . . . . . }
7979
. . . . . . . . . . . . 1: Attribute {
80-
. . . . . . . . . . . . . Roles: Call,Callee,Qualified,Identifier,Expression
80+
. . . . . . . . . . . . . Roles: Call,Callee,Identifier,Expression
8181
. . . . . . . . . . . . . TOKEN "join"
8282
. . . . . . . . . . . . . StartPosition: {
8383
. . . . . . . . . . . . . . Offset: 86
@@ -117,7 +117,7 @@ Module {
117117
. . . . . . . . . . . }
118118
. . . . . . . . . . }
119119
. . . . . . . . . . 1: Attribute {
120-
. . . . . . . . . . . Roles: Call,Callee,Qualified,Identifier,Expression
120+
. . . . . . . . . . . Roles: Call,Callee,Identifier,Expression
121121
. . . . . . . . . . . TOKEN "write"
122122
. . . . . . . . . . . StartPosition: {
123123
. . . . . . . . . . . . Offset: 75
@@ -192,7 +192,7 @@ Module {
192192
. . . . . . . . . . . }
193193
. . . . . . . . . . . Children: {
194194
. . . . . . . . . . . . 0: Attribute {
195-
. . . . . . . . . . . . . Roles: Function,Call,Positional,Argument,Name,Qualified,Identifier,Expression
195+
. . . . . . . . . . . . . Roles: Function,Call,Positional,Argument,Name,Identifier,Expression
196196
. . . . . . . . . . . . . TOKEN "output"
197197
. . . . . . . . . . . . . StartPosition: {
198198
. . . . . . . . . . . . . . Offset: 28
@@ -247,7 +247,7 @@ Module {
247247
. . . . . . . . . . . . . }
248248
. . . . . . . . . . . . }
249249
. . . . . . . . . . . . 2: Attribute {
250-
. . . . . . . . . . . . . Roles: Call,Callee,Qualified,Identifier,Expression
250+
. . . . . . . . . . . . . Roles: Call,Callee,Identifier,Expression
251251
. . . . . . . . . . . . . TOKEN "join"
252252
. . . . . . . . . . . . . StartPosition: {
253253
. . . . . . . . . . . . . . Offset: 18
@@ -265,7 +265,7 @@ Module {
265265
. . . . . . . . . . . . . }
266266
. . . . . . . . . . . . . Children: {
267267
. . . . . . . . . . . . . . 0: Attribute {
268-
. . . . . . . . . . . . . . . Roles: Call,Receiver,Qualified,Identifier,Expression
268+
. . . . . . . . . . . . . . . Roles: Call,Receiver,Identifier,Expression,Qualified
269269
. . . . . . . . . . . . . . . TOKEN "path"
270270
. . . . . . . . . . . . . . . StartPosition: {
271271
. . . . . . . . . . . . . . . . Offset: 13

0 commit comments

Comments
 (0)