Skip to content

Commit 89c16ab

Browse files
committed
C#: Add more tests for params and update expected output.
1 parent 8e9551d commit 89c16ab

17 files changed

+2119
-1743
lines changed

csharp/ql/test/library-tests/arguments/PrintAst.expected

Lines changed: 424 additions & 299 deletions
Large diffs are not rendered by default.

csharp/ql/test/library-tests/arguments/argumentByName.expected

Lines changed: 105 additions & 64 deletions
Large diffs are not rendered by default.

csharp/ql/test/library-tests/arguments/argumentByParameter.expected

Lines changed: 103 additions & 68 deletions
Large diffs are not rendered by default.
Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,23 @@
1-
| arguments.cs:27:15:27:15 | 2 | y |
2-
| arguments.cs:30:30:30:31 | 10 | y |
3-
| arguments.cs:30:37:30:37 | 5 | x |
4-
| arguments.cs:37:18:37:18 | 1 | args |
5-
| arguments.cs:37:24:37:24 | 0 | o |
6-
| arguments.cs:39:18:39:21 | access to parameter args | args |
7-
| arguments.cs:39:27:39:27 | 0 | o |
8-
| arguments.cs:40:18:40:35 | array creation of type Int32[] | args |
9-
| arguments.cs:40:41:40:41 | 0 | o |
10-
| arguments.cs:70:28:70:29 | "" | y |
11-
| arguments.cs:70:36:70:36 | 0 | x |
12-
| arguments.cs:78:18:78:21 | access to parameter args | args |
13-
| arguments.cs:78:27:78:27 | 0 | o |
1+
| arguments.cs:28:15:28:15 | 2 | y |
2+
| arguments.cs:31:30:31:31 | 10 | y |
3+
| arguments.cs:31:37:31:37 | 5 | x |
4+
| arguments.cs:38:18:38:18 | 1 | args |
5+
| arguments.cs:38:24:38:24 | 0 | o |
6+
| arguments.cs:40:18:40:21 | access to parameter args | args |
7+
| arguments.cs:40:27:40:27 | 0 | o |
8+
| arguments.cs:41:18:41:35 | array creation of type Int32[] | args |
9+
| arguments.cs:41:41:41:41 | 0 | o |
10+
| arguments.cs:71:28:71:29 | "" | y |
11+
| arguments.cs:71:36:71:36 | 0 | x |
12+
| arguments.cs:79:18:79:21 | access to parameter args | args |
13+
| arguments.cs:79:27:79:27 | 0 | o |
14+
| arguments.cs:94:18:94:21 | access to parameter args | args |
15+
| arguments.cs:94:27:94:27 | 0 | o |
16+
| arguments.cs:107:19:107:19 | 1 | args |
17+
| arguments.cs:107:25:107:25 | 0 | o |
18+
| arguments.cs:109:19:109:22 | access to parameter args | args |
19+
| arguments.cs:109:28:109:28 | 0 | o |
20+
| arguments.cs:110:19:110:24 | [...] | args |
21+
| arguments.cs:110:30:110:30 | 0 | o |
1422
| lambdas.cs:25:16:25:16 | 4 | y |
1523
| lambdas.cs:25:22:25:22 | 5 | x |

csharp/ql/test/library-tests/arguments/argumentType.expected

Lines changed: 104 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,75 +1,114 @@
1-
| arguments.cs:27:15:27:15 | 2 | 0 |
2-
| arguments.cs:28:12:28:12 | access to local variable x | 0 |
3-
| arguments.cs:28:19:28:19 | access to local variable x | 2 |
4-
| arguments.cs:28:26:28:26 | access to local variable x | 1 |
5-
| arguments.cs:29:27:29:27 | access to local variable x | 0 |
6-
| arguments.cs:29:34:29:34 | access to local variable x | 2 |
7-
| arguments.cs:29:41:29:41 | access to local variable x | 1 |
8-
| arguments.cs:30:30:30:31 | 10 | 0 |
9-
| arguments.cs:30:37:30:37 | 5 | 0 |
10-
| arguments.cs:35:12:35:12 | 0 | 0 |
11-
| arguments.cs:35:15:35:15 | 1 | 0 |
12-
| arguments.cs:35:18:35:18 | 2 | 0 |
1+
| arguments.cs:28:15:28:15 | 2 | 0 |
2+
| arguments.cs:29:12:29:12 | access to local variable x | 0 |
3+
| arguments.cs:29:19:29:19 | access to local variable x | 2 |
4+
| arguments.cs:29:26:29:26 | access to local variable x | 1 |
5+
| arguments.cs:30:27:30:27 | access to local variable x | 0 |
6+
| arguments.cs:30:34:30:34 | access to local variable x | 2 |
7+
| arguments.cs:30:41:30:41 | access to local variable x | 1 |
8+
| arguments.cs:31:30:31:31 | 10 | 0 |
9+
| arguments.cs:31:37:31:37 | 5 | 0 |
1310
| arguments.cs:36:12:36:12 | 0 | 0 |
14-
| arguments.cs:36:15:36:32 | array creation of type Int32[] | 0 |
15-
| arguments.cs:37:18:37:18 | 1 | 0 |
16-
| arguments.cs:37:24:37:24 | 0 | 0 |
17-
| arguments.cs:38:12:38:12 | 0 | 0 |
18-
| arguments.cs:38:15:38:18 | access to parameter args | 0 |
19-
| arguments.cs:39:18:39:21 | access to parameter args | 0 |
20-
| arguments.cs:39:27:39:27 | 0 | 0 |
21-
| arguments.cs:40:18:40:35 | array creation of type Int32[] | 0 |
22-
| arguments.cs:40:41:40:41 | 0 | 0 |
23-
| arguments.cs:42:12:42:12 | 0 | 0 |
24-
| arguments.cs:42:15:42:16 | (...) ... | 0 |
25-
| arguments.cs:42:19:42:20 | (...) ... | 0 |
26-
| arguments.cs:47:12:47:32 | array creation of type Object[] | 0 |
27-
| arguments.cs:47:35:47:38 | null | 0 |
28-
| arguments.cs:57:21:57:21 | 1 | 0 |
29-
| arguments.cs:57:24:57:24 | 2 | 0 |
30-
| arguments.cs:58:10:58:13 | access to property Prop | 0 |
31-
| arguments.cs:58:16:58:25 | access to indexer | 0 |
32-
| arguments.cs:58:21:58:21 | 3 | 0 |
33-
| arguments.cs:58:24:58:24 | 4 | 0 |
34-
| arguments.cs:58:31:58:31 | 5 | 0 |
35-
| arguments.cs:58:34:58:34 | 6 | 0 |
36-
| arguments.cs:61:14:61:14 | 8 | 0 |
37-
| arguments.cs:61:17:61:17 | 9 | 0 |
38-
| arguments.cs:62:14:62:15 | 10 | 0 |
39-
| arguments.cs:62:14:62:15 | 10 | 0 |
40-
| arguments.cs:62:18:62:19 | 11 | 0 |
41-
| arguments.cs:62:18:62:19 | 11 | 0 |
42-
| arguments.cs:63:22:63:23 | 13 | 0 |
43-
| arguments.cs:63:26:63:27 | 14 | 0 |
44-
| arguments.cs:64:10:64:13 | access to property Prop | 0 |
45-
| arguments.cs:64:16:64:27 | access to indexer | 0 |
46-
| arguments.cs:64:21:64:22 | 15 | 0 |
47-
| arguments.cs:64:25:64:26 | 16 | 0 |
48-
| arguments.cs:75:12:75:12 | 0 | 0 |
49-
| arguments.cs:75:15:75:21 | access to array element | 0 |
50-
| arguments.cs:75:20:75:20 | 0 | 0 |
51-
| arguments.cs:75:24:75:30 | access to array element | 0 |
52-
| arguments.cs:75:29:75:29 | 1 | 0 |
11+
| arguments.cs:36:15:36:15 | 1 | 0 |
12+
| arguments.cs:36:18:36:18 | 2 | 0 |
13+
| arguments.cs:37:12:37:12 | 0 | 0 |
14+
| arguments.cs:37:15:37:32 | array creation of type Int32[] | 0 |
15+
| arguments.cs:38:18:38:18 | 1 | 0 |
16+
| arguments.cs:38:24:38:24 | 0 | 0 |
17+
| arguments.cs:39:12:39:12 | 0 | 0 |
18+
| arguments.cs:39:15:39:18 | access to parameter args | 0 |
19+
| arguments.cs:40:18:40:21 | access to parameter args | 0 |
20+
| arguments.cs:40:27:40:27 | 0 | 0 |
21+
| arguments.cs:41:18:41:35 | array creation of type Int32[] | 0 |
22+
| arguments.cs:41:41:41:41 | 0 | 0 |
23+
| arguments.cs:43:12:43:12 | 0 | 0 |
24+
| arguments.cs:43:15:43:16 | (...) ... | 0 |
25+
| arguments.cs:43:19:43:20 | (...) ... | 0 |
26+
| arguments.cs:48:12:48:32 | array creation of type Object[] | 0 |
27+
| arguments.cs:48:35:48:38 | null | 0 |
28+
| arguments.cs:58:21:58:21 | 1 | 0 |
29+
| arguments.cs:58:24:58:24 | 2 | 0 |
30+
| arguments.cs:59:10:59:13 | access to property Prop | 0 |
31+
| arguments.cs:59:16:59:25 | access to indexer | 0 |
32+
| arguments.cs:59:21:59:21 | 3 | 0 |
33+
| arguments.cs:59:24:59:24 | 4 | 0 |
34+
| arguments.cs:59:31:59:31 | 5 | 0 |
35+
| arguments.cs:59:34:59:34 | 6 | 0 |
36+
| arguments.cs:62:14:62:14 | 8 | 0 |
37+
| arguments.cs:62:17:62:17 | 9 | 0 |
38+
| arguments.cs:63:14:63:15 | 10 | 0 |
39+
| arguments.cs:63:14:63:15 | 10 | 0 |
40+
| arguments.cs:63:18:63:19 | 11 | 0 |
41+
| arguments.cs:63:18:63:19 | 11 | 0 |
42+
| arguments.cs:64:22:64:23 | 13 | 0 |
43+
| arguments.cs:64:26:64:27 | 14 | 0 |
44+
| arguments.cs:65:10:65:13 | access to property Prop | 0 |
45+
| arguments.cs:65:16:65:27 | access to indexer | 0 |
46+
| arguments.cs:65:21:65:22 | 15 | 0 |
47+
| arguments.cs:65:25:65:26 | 16 | 0 |
5348
| arguments.cs:76:12:76:12 | 0 | 0 |
54-
| arguments.cs:76:15:76:42 | array creation of type T[] | 0 |
55-
| arguments.cs:76:30:76:30 | 0 | 0 |
56-
| arguments.cs:76:39:76:39 | 1 | 0 |
49+
| arguments.cs:76:15:76:21 | access to array element | 0 |
50+
| arguments.cs:76:20:76:20 | 0 | 0 |
51+
| arguments.cs:76:24:76:30 | access to array element | 0 |
52+
| arguments.cs:76:29:76:29 | 1 | 0 |
5753
| arguments.cs:77:12:77:12 | 0 | 0 |
58-
| arguments.cs:77:15:77:18 | access to parameter args | 0 |
59-
| arguments.cs:78:18:78:21 | access to parameter args | 0 |
60-
| arguments.cs:78:27:78:27 | 0 | 0 |
61-
| arguments.cs:80:20:80:20 | 0 | 0 |
62-
| arguments.cs:80:23:80:25 | 1.1 | 0 |
63-
| arguments.cs:80:28:80:30 | 2.2 | 0 |
54+
| arguments.cs:77:15:77:42 | array creation of type T[] | 0 |
55+
| arguments.cs:77:30:77:30 | 0 | 0 |
56+
| arguments.cs:77:39:77:39 | 1 | 0 |
57+
| arguments.cs:78:12:78:12 | 0 | 0 |
58+
| arguments.cs:78:15:78:18 | access to parameter args | 0 |
59+
| arguments.cs:79:18:79:21 | access to parameter args | 0 |
60+
| arguments.cs:79:27:79:27 | 0 | 0 |
6461
| arguments.cs:81:20:81:20 | 0 | 0 |
65-
| arguments.cs:81:23:81:47 | array creation of type Double[] | 0 |
66-
| arguments.cs:83:20:83:20 | 0 | 0 |
67-
| arguments.cs:83:23:83:23 | (...) ... | 0 |
68-
| arguments.cs:83:26:83:26 | (...) ... | 0 |
62+
| arguments.cs:81:23:81:25 | 1.1 | 0 |
63+
| arguments.cs:81:28:81:30 | 2.2 | 0 |
64+
| arguments.cs:82:20:82:20 | 0 | 0 |
65+
| arguments.cs:82:23:82:47 | array creation of type Double[] | 0 |
6966
| arguments.cs:84:20:84:20 | 0 | 0 |
70-
| arguments.cs:84:23:84:43 | array creation of type Double[] | 0 |
67+
| arguments.cs:84:23:84:23 | (...) ... | 0 |
68+
| arguments.cs:84:26:84:26 | (...) ... | 0 |
7169
| arguments.cs:85:20:85:20 | 0 | 0 |
7270
| arguments.cs:85:23:85:43 | array creation of type Double[] | 0 |
71+
| arguments.cs:86:20:86:20 | 0 | 0 |
72+
| arguments.cs:86:23:86:43 | array creation of type Double[] | 0 |
73+
| arguments.cs:91:12:91:12 | 0 | 0 |
74+
| arguments.cs:91:15:91:21 | access to indexer | 0 |
75+
| arguments.cs:91:20:91:20 | 0 | 0 |
76+
| arguments.cs:91:24:91:30 | access to indexer | 0 |
77+
| arguments.cs:91:29:91:29 | 1 | 0 |
78+
| arguments.cs:92:12:92:12 | 0 | 0 |
79+
| arguments.cs:92:15:92:32 | [...] | 0 |
80+
| arguments.cs:92:21:92:21 | 0 | 0 |
81+
| arguments.cs:92:30:92:30 | 1 | 0 |
82+
| arguments.cs:93:12:93:12 | 0 | 0 |
83+
| arguments.cs:93:15:93:18 | access to parameter args | 0 |
84+
| arguments.cs:94:18:94:21 | access to parameter args | 0 |
85+
| arguments.cs:94:27:94:27 | 0 | 0 |
86+
| arguments.cs:96:20:96:20 | 0 | 0 |
87+
| arguments.cs:96:23:96:25 | 1.1 | 0 |
88+
| arguments.cs:96:28:96:30 | 2.2 | 0 |
89+
| arguments.cs:97:20:97:20 | 0 | 0 |
90+
| arguments.cs:97:23:97:32 | [...] | 0 |
91+
| arguments.cs:99:20:99:20 | 0 | 0 |
92+
| arguments.cs:99:23:99:23 | (...) ... | 0 |
93+
| arguments.cs:99:26:99:26 | (...) ... | 0 |
94+
| arguments.cs:100:20:100:20 | 0 | 0 |
95+
| arguments.cs:100:23:100:47 | object creation of type List<Double> | 0 |
96+
| arguments.cs:105:13:105:13 | 0 | 0 |
97+
| arguments.cs:105:16:105:16 | 1 | 0 |
98+
| arguments.cs:105:19:105:19 | 2 | 0 |
99+
| arguments.cs:106:13:106:13 | 0 | 0 |
100+
| arguments.cs:106:16:106:21 | [...] | 0 |
101+
| arguments.cs:107:19:107:19 | 1 | 0 |
102+
| arguments.cs:107:25:107:25 | 0 | 0 |
103+
| arguments.cs:108:13:108:13 | 0 | 0 |
104+
| arguments.cs:108:16:108:19 | access to parameter args | 0 |
105+
| arguments.cs:109:19:109:22 | access to parameter args | 0 |
106+
| arguments.cs:109:28:109:28 | 0 | 0 |
107+
| arguments.cs:110:19:110:24 | [...] | 0 |
108+
| arguments.cs:110:30:110:30 | 0 | 0 |
109+
| arguments.cs:112:13:112:13 | 0 | 0 |
110+
| arguments.cs:112:16:112:17 | (...) ... | 0 |
111+
| arguments.cs:112:20:112:21 | (...) ... | 0 |
73112
| lambdas.cs:8:12:8:12 | 1 | 0 |
74113
| lambdas.cs:11:12:11:12 | 2 | 0 |
75114
| lambdas.cs:11:15:11:15 | 3 | 0 |

csharp/ql/test/library-tests/arguments/arguments.cs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using System.Collections.Generic;
23

34
class ArgumentsTest
45
{
@@ -84,6 +85,32 @@ void f8<T>(int o, params T[] args)
8485
f8<double>(0, new double[] { 1, 2 });
8586
f8<double>(0, new double[] { 1, 2 });
8687
}
88+
89+
void f9<T>(int o, params List<T> args)
90+
{
91+
f9(0, args[0], args[1]);
92+
f9(0, [args[0], args[1]]);
93+
f9(0, args);
94+
f9(args: args, o: 0);
95+
96+
f9<double>(0, 1.1, 2.2);
97+
f9<double>(0, [1.1, 2.2]);
98+
99+
f9<double>(0, 1, 2);
100+
f9<double>(0, new List<double> { 1, 2 });
101+
}
102+
103+
void f10(int o, params List<int> args)
104+
{
105+
f10(0, 1, 2);
106+
f10(0, [1, 2]);
107+
f10(args: 1, o: 0);
108+
f10(0, args);
109+
f10(args: args, o: 0);
110+
f10(args: [1, 2], o: 0);
111+
short s1 = 1, s2 = 2;
112+
f10(0, s1, s2);
113+
}
87114
}
88115

89116
class MyAttribute : Attribute

0 commit comments

Comments
 (0)