Skip to content

Commit 8fe31a1

Browse files
committed
C#: Add some more testcases and update test expected output.
1 parent a991afd commit 8fe31a1

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed

csharp/ql/test/library-tests/conversion/span/Span.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,17 @@ public void M()
6161
string s = "";
6262
ReadOnlySpan<char> charReadOnlySpan = s; // string -> ReadOnlySpan<char>
6363

64+
// Various ref type conversions
65+
Derived[] derivedArray = [];
66+
ReadOnlySpan<Base> baseReadOnlySpan;
67+
baseReadOnlySpan = derivedArray; // Derived[] -> ReadOnlySpan<Base>
68+
69+
ReadOnlySpan<object> objectReadOnlySpan;
70+
objectReadOnlySpan = stringArray; // string[] -> ReadOnlySpan<object>
71+
72+
byte[][] byteByteArray = [];
73+
objectReadOnlySpan = byteByteArray; // byte[][] -> ReadOnlySpan<object>
74+
6475
// No conversion possible except for identity.
6576
ReadOnlySpan<InvariantInterface<Base>> invariantInterfaceBaseReadOnlySpan;
6677
ReadOnlySpan<InvariantInterface<Derived>> invariantInterfaceDerivedReadOnlySpan;
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,47 @@
11
| ContravariantInterface<Base>[] | ReadOnlySpan<ContravariantInterface<Base>> |
22
| ContravariantInterface<Base>[] | ReadOnlySpan<ContravariantInterface<Derived>> |
3+
| ContravariantInterface<Base>[] | ReadOnlySpan<object> |
34
| ContravariantInterface<Base>[] | Span<ContravariantInterface<Base>> |
45
| CovariantInterface<Derived>[] | ReadOnlySpan<CovariantInterface<Base>> |
56
| CovariantInterface<Derived>[] | ReadOnlySpan<CovariantInterface<Derived>> |
7+
| CovariantInterface<Derived>[] | ReadOnlySpan<object> |
68
| CovariantInterface<Derived>[] | Span<CovariantInterface<Derived>> |
9+
| Derived[] | ReadOnlySpan<Base> |
10+
| Derived[] | ReadOnlySpan<object> |
711
| InvariantInterface<Derived>[] | ReadOnlySpan<InvariantInterface<Derived>> |
12+
| InvariantInterface<Derived>[] | ReadOnlySpan<object> |
813
| InvariantInterface<Derived>[] | Span<InvariantInterface<Derived>> |
914
| MixedInterface<Derived,Base>[] | ReadOnlySpan<MixedInterface<Base, Derived>> |
1015
| MixedInterface<Derived,Base>[] | ReadOnlySpan<MixedInterface<Derived, Base>> |
16+
| MixedInterface<Derived,Base>[] | ReadOnlySpan<object> |
1117
| MixedInterface<Derived,Base>[] | Span<MixedInterface<Derived, Base>> |
18+
| ReadOnlySpan<Base> | ReadOnlySpan<object> |
1219
| ReadOnlySpan<ContravariantInterface<Base>> | ReadOnlySpan<ContravariantInterface<Derived>> |
20+
| ReadOnlySpan<ContravariantInterface<Base>> | ReadOnlySpan<object> |
21+
| ReadOnlySpan<ContravariantInterface<Derived>> | ReadOnlySpan<object> |
22+
| ReadOnlySpan<CovariantInterface<Base>> | ReadOnlySpan<object> |
1323
| ReadOnlySpan<CovariantInterface<Derived>> | ReadOnlySpan<CovariantInterface<Base>> |
24+
| ReadOnlySpan<CovariantInterface<Derived>> | ReadOnlySpan<object> |
25+
| ReadOnlySpan<InvariantInterface<Base>> | ReadOnlySpan<object> |
26+
| ReadOnlySpan<InvariantInterface<Derived>> | ReadOnlySpan<object> |
27+
| ReadOnlySpan<MixedInterface<Base, Derived>> | ReadOnlySpan<object> |
1428
| ReadOnlySpan<MixedInterface<Derived, Base>> | ReadOnlySpan<MixedInterface<Base, Derived>> |
29+
| ReadOnlySpan<MixedInterface<Derived, Base>> | ReadOnlySpan<object> |
30+
| ReadOnlySpan<string> | ReadOnlySpan<object> |
1531
| Span<ContravariantInterface<Base>> | ReadOnlySpan<ContravariantInterface<Base>> |
1632
| Span<ContravariantInterface<Base>> | ReadOnlySpan<ContravariantInterface<Derived>> |
33+
| Span<ContravariantInterface<Base>> | ReadOnlySpan<object> |
1734
| Span<CovariantInterface<Derived>> | ReadOnlySpan<CovariantInterface<Base>> |
1835
| Span<CovariantInterface<Derived>> | ReadOnlySpan<CovariantInterface<Derived>> |
36+
| Span<CovariantInterface<Derived>> | ReadOnlySpan<object> |
1937
| Span<InvariantInterface<Derived>> | ReadOnlySpan<InvariantInterface<Derived>> |
38+
| Span<InvariantInterface<Derived>> | ReadOnlySpan<object> |
2039
| Span<MixedInterface<Derived, Base>> | ReadOnlySpan<MixedInterface<Base, Derived>> |
2140
| Span<MixedInterface<Derived, Base>> | ReadOnlySpan<MixedInterface<Derived, Base>> |
41+
| Span<MixedInterface<Derived, Base>> | ReadOnlySpan<object> |
42+
| Span<string> | ReadOnlySpan<object> |
2243
| Span<string> | ReadOnlySpan<string> |
44+
| String[] | ReadOnlySpan<object> |
2345
| String[] | ReadOnlySpan<string> |
2446
| String[] | Span<string> |
2547
| string | ReadOnlySpan<char> |

0 commit comments

Comments
 (0)