Skip to content

Commit 57973df

Browse files
author
Paolo Tranquilli
committed
Rust: make CallExpr.toString use call identifier if present
1 parent 4fb028c commit 57973df

File tree

14 files changed

+793
-1271
lines changed

14 files changed

+793
-1271
lines changed

rust/ql/lib/codeql/rust/elements/internal/CallExprImpl.qll

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
*/
66

77
private import codeql.rust.elements.internal.generated.CallExpr
8+
private import codeql.rust.elements.PathExpr
89

910
/**
1011
* INTERNAL: This module contains the customizable definition of `CallExpr` and should not
@@ -22,6 +23,15 @@ module Impl {
2223
* ```
2324
*/
2425
class CallExpr extends Generated::CallExpr {
25-
override string toString() { result = "... (...)" }
26+
override string toString() {
27+
exists(string callee |
28+
(
29+
callee = this.getExpr().(PathExpr).toString()
30+
or
31+
not this.getExpr() instanceof PathExpr and callee = "..."
32+
) and
33+
result = callee + "(...)"
34+
)
35+
}
2636
}
2737
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
| gen_await_expr.rs:6:17:6:27 | await ... | gen_await_expr.rs:6:17:6:21 | ... (...) |
1+
| gen_await_expr.rs:6:17:6:27 | await ... | gen_await_expr.rs:6:17:6:21 | foo(...) |
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
| gen_become_expr.rs:8:10:8:36 | become ... | gen_become_expr.rs:8:17:8:36 | ... (...) |
1+
| gen_become_expr.rs:8:10:8:36 | become ... | gen_become_expr.rs:8:17:8:36 | fact_a(...) |
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
| gen_call_expr.rs:5:5:5:11 | ... (...) | hasArgList: | yes | getNumberOfAttrs: | 0 | hasExpr: | yes |
2-
| gen_call_expr.rs:6:5:6:23 | ... (...) | hasArgList: | yes | getNumberOfAttrs: | 0 | hasExpr: | yes |
3-
| gen_call_expr.rs:7:5:7:14 | ... (...) | hasArgList: | yes | getNumberOfAttrs: | 0 | hasExpr: | yes |
4-
| gen_call_expr.rs:8:5:8:10 | ... (...) | hasArgList: | yes | getNumberOfAttrs: | 0 | hasExpr: | yes |
1+
| gen_call_expr.rs:5:5:5:11 | foo(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | hasExpr: | yes |
2+
| gen_call_expr.rs:6:5:6:23 | foo::<...>(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | hasExpr: | yes |
3+
| gen_call_expr.rs:7:5:7:14 | ...(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | hasExpr: | yes |
4+
| gen_call_expr.rs:8:5:8:10 | foo(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | hasExpr: | yes |
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
| gen_call_expr.rs:5:5:5:11 | ... (...) | gen_call_expr.rs:5:8:5:11 | ArgList |
2-
| gen_call_expr.rs:6:5:6:23 | ... (...) | gen_call_expr.rs:6:20:6:23 | ArgList |
3-
| gen_call_expr.rs:7:5:7:14 | ... (...) | gen_call_expr.rs:7:11:7:14 | ArgList |
4-
| gen_call_expr.rs:8:5:8:10 | ... (...) | gen_call_expr.rs:8:8:8:10 | ArgList |
1+
| gen_call_expr.rs:5:5:5:11 | foo(...) | gen_call_expr.rs:5:8:5:11 | ArgList |
2+
| gen_call_expr.rs:6:5:6:23 | foo::<...>(...) | gen_call_expr.rs:6:20:6:23 | ArgList |
3+
| gen_call_expr.rs:7:5:7:14 | ...(...) | gen_call_expr.rs:7:11:7:14 | ArgList |
4+
| gen_call_expr.rs:8:5:8:10 | foo(...) | gen_call_expr.rs:8:8:8:10 | ArgList |
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
| gen_call_expr.rs:5:5:5:11 | ... (...) | gen_call_expr.rs:5:5:5:7 | foo |
2-
| gen_call_expr.rs:6:5:6:23 | ... (...) | gen_call_expr.rs:6:5:6:19 | foo::<...> |
3-
| gen_call_expr.rs:7:5:7:14 | ... (...) | gen_call_expr.rs:7:5:7:10 | ...[...] |
4-
| gen_call_expr.rs:8:5:8:10 | ... (...) | gen_call_expr.rs:8:5:8:7 | foo |
1+
| gen_call_expr.rs:5:5:5:11 | foo(...) | gen_call_expr.rs:5:5:5:7 | foo |
2+
| gen_call_expr.rs:6:5:6:23 | foo::<...>(...) | gen_call_expr.rs:6:5:6:19 | foo::<...> |
3+
| gen_call_expr.rs:7:5:7:14 | ...(...) | gen_call_expr.rs:7:5:7:10 | ...[...] |
4+
| gen_call_expr.rs:8:5:8:10 | foo(...) | gen_call_expr.rs:8:5:8:7 | foo |
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
| gen_expr_stmt.rs:5:5:5:12 | ExprStmt | gen_expr_stmt.rs:5:5:5:11 | ... (...) |
2-
| gen_expr_stmt.rs:6:5:6:13 | ExprStmt | gen_expr_stmt.rs:6:5:6:12 | ... (...) |
1+
| gen_expr_stmt.rs:5:5:5:12 | ExprStmt | gen_expr_stmt.rs:5:5:5:11 | start(...) |
2+
| gen_expr_stmt.rs:6:5:6:13 | ExprStmt | gen_expr_stmt.rs:6:5:6:12 | finish(...) |
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
| gen_let_stmt.rs:5:5:5:15 | let x = ... | gen_let_stmt.rs:5:13:5:14 | 42 |
22
| gen_let_stmt.rs:6:5:6:20 | let x = ... | gen_let_stmt.rs:6:18:6:19 | 42 |
33
| gen_let_stmt.rs:9:5:9:24 | let TuplePat = ... | gen_let_stmt.rs:9:18:9:23 | TupleExpr |
4-
| gen_let_stmt.rs:10:5:12:6 | let TupleStructPat = ... else { ... } | gen_let_stmt.rs:10:19:10:38 | ... (...) |
4+
| gen_let_stmt.rs:10:5:12:6 | let TupleStructPat = ... else { ... } | gen_let_stmt.rs:10:19:10:38 | std::env::var(...) |
Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
1-
| main.rs:13:5:13:13 | ... (...) | main.rs:1:1:3:1 | fn source |
2-
| main.rs:17:13:17:23 | ... (...) | main.rs:12:1:14:1 | fn get_data |
3-
| main.rs:18:5:18:11 | ... (...) | main.rs:5:1:7:1 | fn sink |
4-
| main.rs:22:5:22:15 | ... (...) | main.rs:5:1:7:1 | fn sink |
5-
| main.rs:26:13:26:21 | ... (...) | main.rs:1:1:3:1 | fn source |
6-
| main.rs:27:5:27:14 | ... (...) | main.rs:21:1:23:1 | fn data_in |
7-
| main.rs:35:13:35:21 | ... (...) | main.rs:1:1:3:1 | fn source |
8-
| main.rs:36:13:36:27 | ... (...) | main.rs:30:1:32:1 | fn pass_through |
9-
| main.rs:37:5:37:11 | ... (...) | main.rs:5:1:7:1 | fn sink |
10-
| main.rs:49:9:49:15 | ... (...) | main.rs:5:1:7:1 | fn sink |
11-
| main.rs:55:13:55:21 | ... (...) | main.rs:1:1:3:1 | fn source |
1+
| main.rs:13:5:13:13 | source(...) | main.rs:1:1:3:1 | fn source |
2+
| main.rs:17:13:17:23 | get_data(...) | main.rs:12:1:14:1 | fn get_data |
3+
| main.rs:18:5:18:11 | sink(...) | main.rs:5:1:7:1 | fn sink |
4+
| main.rs:22:5:22:15 | sink(...) | main.rs:5:1:7:1 | fn sink |
5+
| main.rs:26:13:26:21 | source(...) | main.rs:1:1:3:1 | fn source |
6+
| main.rs:27:5:27:14 | data_in(...) | main.rs:21:1:23:1 | fn data_in |
7+
| main.rs:35:13:35:21 | source(...) | main.rs:1:1:3:1 | fn source |
8+
| main.rs:36:13:36:27 | pass_through(...) | main.rs:30:1:32:1 | fn pass_through |
9+
| main.rs:37:5:37:11 | sink(...) | main.rs:5:1:7:1 | fn sink |
10+
| main.rs:49:9:49:15 | sink(...) | main.rs:5:1:7:1 | fn sink |
11+
| main.rs:55:13:55:21 | source(...) | main.rs:1:1:3:1 | fn source |
1212
| main.rs:69:13:69:25 | ... .get_data(...) | main.rs:51:5:57:5 | fn get_data |
13-
| main.rs:70:5:70:11 | ... (...) | main.rs:5:1:7:1 | fn sink |
14-
| main.rs:75:13:75:21 | ... (...) | main.rs:1:1:3:1 | fn source |
13+
| main.rs:70:5:70:11 | sink(...) | main.rs:5:1:7:1 | fn sink |
14+
| main.rs:75:13:75:21 | source(...) | main.rs:1:1:3:1 | fn source |
1515
| main.rs:76:5:76:17 | ... .data_in(...) | main.rs:48:5:50:5 | fn data_in |
16-
| main.rs:81:13:81:21 | ... (...) | main.rs:1:1:3:1 | fn source |
16+
| main.rs:81:13:81:21 | source(...) | main.rs:1:1:3:1 | fn source |
1717
| main.rs:82:5:82:22 | ... .data_through(...) | main.rs:58:5:64:5 | fn data_through |
18-
| main.rs:83:5:83:11 | ... (...) | main.rs:5:1:7:1 | fn sink |
19-
| main.rs:87:5:87:22 | ... (...) | main.rs:16:1:19:1 | fn data_out_of_call |
20-
| main.rs:88:5:88:21 | ... (...) | main.rs:25:1:28:1 | fn data_in_to_call |
21-
| main.rs:89:5:89:23 | ... (...) | main.rs:34:1:38:1 | fn data_through_call |
22-
| main.rs:91:5:91:24 | ... (...) | main.rs:67:1:71:1 | fn data_out_of_method |
23-
| main.rs:92:5:92:28 | ... (...) | main.rs:73:1:77:1 | fn data_in_to_method_call |
24-
| main.rs:93:5:93:25 | ... (...) | main.rs:79:1:84:1 | fn data_through_method |
18+
| main.rs:83:5:83:11 | sink(...) | main.rs:5:1:7:1 | fn sink |
19+
| main.rs:87:5:87:22 | data_out_of_call(...) | main.rs:16:1:19:1 | fn data_out_of_call |
20+
| main.rs:88:5:88:21 | data_in_to_call(...) | main.rs:25:1:28:1 | fn data_in_to_call |
21+
| main.rs:89:5:89:23 | data_through_call(...) | main.rs:34:1:38:1 | fn data_through_call |
22+
| main.rs:91:5:91:24 | data_out_of_method(...) | main.rs:67:1:71:1 | fn data_out_of_method |
23+
| main.rs:92:5:92:28 | data_in_to_method_call(...) | main.rs:73:1:77:1 | fn data_in_to_method_call |
24+
| main.rs:93:5:93:25 | data_through_method(...) | main.rs:79:1:84:1 | fn data_through_method |

rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
| main.rs:7:9:7:9 | s | main.rs:7:9:7:9 | [SSA] s |
66
| main.rs:19:9:19:9 | [SSA] s | main.rs:20:10:20:10 | s |
77
| main.rs:19:9:19:9 | s | main.rs:19:9:19:9 | [SSA] s |
8-
| main.rs:19:13:19:21 | ... (...) | main.rs:19:9:19:9 | s |
8+
| main.rs:19:13:19:21 | source(...) | main.rs:19:9:19:9 | s |
99
| main.rs:23:18:23:21 | [SSA] cond | main.rs:26:16:26:19 | cond |
1010
| main.rs:23:18:23:21 | cond | main.rs:23:18:23:21 | [SSA] cond |
1111
| main.rs:24:9:24:9 | [SSA] a | main.rs:26:23:26:23 | a |
1212
| main.rs:24:9:24:9 | a | main.rs:24:9:24:9 | [SSA] a |
13-
| main.rs:24:13:24:21 | ... (...) | main.rs:24:9:24:9 | a |
13+
| main.rs:24:13:24:21 | source(...) | main.rs:24:9:24:9 | a |
1414
| main.rs:25:9:25:9 | [SSA] b | main.rs:26:34:26:34 | b |
1515
| main.rs:25:9:25:9 | b | main.rs:25:9:25:9 | [SSA] b |
1616
| main.rs:25:13:25:13 | 2 | main.rs:25:9:25:9 | b |
@@ -25,7 +25,7 @@
2525
| main.rs:30:21:30:21 | m | main.rs:30:21:30:21 | [SSA] m |
2626
| main.rs:31:9:31:9 | [SSA] a | main.rs:33:20:33:20 | a |
2727
| main.rs:31:9:31:9 | a | main.rs:31:9:31:9 | [SSA] a |
28-
| main.rs:31:13:31:21 | ... (...) | main.rs:31:9:31:9 | a |
28+
| main.rs:31:13:31:21 | source(...) | main.rs:31:9:31:9 | a |
2929
| main.rs:32:9:32:9 | [SSA] b | main.rs:36:10:36:10 | b |
3030
| main.rs:32:9:32:9 | b | main.rs:32:9:32:9 | [SSA] b |
3131
| main.rs:32:13:35:5 | match ... { ... } | main.rs:32:9:32:9 | b |
@@ -40,15 +40,15 @@
4040
| main.rs:44:9:44:9 | b | main.rs:44:9:44:9 | [SSA] b |
4141
| main.rs:44:13:46:5 | loop {...} | main.rs:44:9:44:9 | b |
4242
| main.rs:45:9:45:23 | (no string representation) | main.rs:44:13:46:5 | loop {...} |
43-
| main.rs:45:15:45:23 | ... (...) | main.rs:45:9:45:23 | (no string representation) |
43+
| main.rs:45:15:45:23 | source(...) | main.rs:45:9:45:23 | (no string representation) |
4444
| main.rs:51:9:51:13 | [SSA] i | main.rs:52:10:52:10 | i |
4545
| main.rs:51:9:51:13 | i | main.rs:51:9:51:13 | [SSA] i |
4646
| main.rs:51:17:51:17 | 1 | main.rs:51:9:51:13 | i |
4747
| main.rs:53:5:53:5 | [SSA] i | main.rs:54:10:54:10 | i |
4848
| main.rs:53:5:53:5 | i | main.rs:53:5:53:5 | [SSA] i |
4949
| main.rs:61:9:61:9 | [SSA] i | main.rs:62:11:62:11 | i |
5050
| main.rs:61:9:61:9 | i | main.rs:61:9:61:9 | [SSA] i |
51-
| main.rs:61:13:61:31 | ... (...) | main.rs:61:9:61:9 | i |
51+
| main.rs:61:13:61:31 | Box::new(...) | main.rs:61:9:61:9 | i |
5252
| main.rs:66:9:66:9 | [SSA] a | main.rs:67:10:67:10 | a |
5353
| main.rs:66:9:66:9 | a | main.rs:66:9:66:9 | [SSA] a |
5454
| main.rs:66:13:66:26 | TupleExpr | main.rs:66:9:66:9 | a |
@@ -70,16 +70,16 @@
7070
| main.rs:97:38:97:38 | p | main.rs:97:9:97:34 | Point {...} |
7171
| main.rs:104:9:104:10 | [SSA] s1 | main.rs:106:11:106:12 | s1 |
7272
| main.rs:104:9:104:10 | s1 | main.rs:104:9:104:10 | [SSA] s1 |
73-
| main.rs:104:14:104:28 | ... (...) | main.rs:104:9:104:10 | s1 |
73+
| main.rs:104:14:104:28 | Some(...) | main.rs:104:9:104:10 | s1 |
7474
| main.rs:105:9:105:10 | [SSA] s2 | main.rs:110:11:110:12 | s2 |
7575
| main.rs:105:9:105:10 | s2 | main.rs:105:9:105:10 | [SSA] s2 |
76-
| main.rs:105:14:105:20 | ... (...) | main.rs:105:9:105:10 | s2 |
76+
| main.rs:105:14:105:20 | Some(...) | main.rs:105:9:105:10 | s2 |
7777
| main.rs:107:14:107:14 | [SSA] n | main.rs:107:25:107:25 | n |
7878
| main.rs:107:14:107:14 | n | main.rs:107:14:107:14 | [SSA] n |
79-
| main.rs:107:20:107:26 | ... (...) | main.rs:106:5:109:5 | match ... { ... } |
80-
| main.rs:108:17:108:23 | ... (...) | main.rs:106:5:109:5 | match ... { ... } |
79+
| main.rs:107:20:107:26 | sink(...) | main.rs:106:5:109:5 | match ... { ... } |
80+
| main.rs:108:17:108:23 | sink(...) | main.rs:106:5:109:5 | match ... { ... } |
8181
| main.rs:110:5:113:5 | match ... { ... } | main.rs:103:27:114:1 | { ... } |
8282
| main.rs:111:14:111:14 | [SSA] n | main.rs:111:25:111:25 | n |
8383
| main.rs:111:14:111:14 | n | main.rs:111:14:111:14 | [SSA] n |
84-
| main.rs:111:20:111:26 | ... (...) | main.rs:110:5:113:5 | match ... { ... } |
85-
| main.rs:112:17:112:23 | ... (...) | main.rs:110:5:113:5 | match ... { ... } |
84+
| main.rs:111:20:111:26 | sink(...) | main.rs:110:5:113:5 | match ... { ... } |
85+
| main.rs:112:17:112:23 | sink(...) | main.rs:110:5:113:5 | match ... { ... } |

0 commit comments

Comments
 (0)