Commit c5201fe
committed
fix(core): every ArgIterator member throws, as .NET's does (#2276, SR-AUD-112)
The ticket asked whether the unreachable instance members should become
reachable, become static, or stay. They STAY instance members, because .NET's
are, and making them static would diverge from the very shape this stub exists
to present.
But ArgIterator.cs:10-58 settled something the ticket had not asked, and it is
the larger half: EVERY member of .NET's portable ArgIterator throws
PlatformNotSupportedException -- constructors, End, Equals, GetHashCode and the
rest alike.
THREE MEMBERS HERE RETURNED QUIETLY: End() was a silent no-op, Equals() returned
false, GetHashCode() returned 0, and all three were noexcept. A caller who
reached one received a PLAUSIBLE ANSWER where .NET reports an unsupported
platform -- the worse of the two failures.
Three further divergences the ticket did not name and the reference exposed: the
exception type was NotSupportedException where .NET uses
PlatformNotSupportedException; GetNextArgType() returned TypedReference where
.NET returns RuntimeTypeHandle, which ONLY a type assertion can catch because
the body throws either way; and the GetNextArg(RuntimeTypeHandle) overload was
missing entirely.
The messages were this port's own invention, one variant per member. .NET uses
one sentence for every door, and it is transcribed.
A test asserts the DERIVED exception type specifically, because
PlatformNotSupportedException derives from NotSupportedException and a test
catching only the base would pass either way -- which is exactly how the old
type survived this long.
Gate 17,283 -> 17,278: nine narrow cases replaced by four that assert more.
Nothing disabled, weakened or skipped. Downstream: zero sites in either
consumer.1 parent 33e8fdd commit c5201fe
6 files changed
Lines changed: 199 additions & 72 deletions
File tree
- audit
- docs
- modules/core
- include/System
- tests/System
Large diffs are not rendered by default.
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
| 6 | + | |
| 7 | + | |
7 | 8 | | |
8 | 9 | | |
9 | 10 | | |
| |||
14 | 15 | | |
15 | 16 | | |
16 | 17 | | |
17 | | - | |
18 | | - | |
19 | | - | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
20 | 23 | | |
21 | | - | |
22 | | - | |
23 | | - | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | | - | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
29 | 42 | | |
30 | 43 | | |
31 | 44 | | |
| |||
35 | 48 | | |
36 | 49 | | |
37 | 50 | | |
38 | | - | |
39 | | - | |
| 51 | + | |
40 | 52 | | |
41 | 53 | | |
42 | 54 | | |
| |||
47 | 59 | | |
48 | 60 | | |
49 | 61 | | |
50 | | - | |
| 62 | + | |
51 | 63 | | |
52 | 64 | | |
53 | 65 | | |
54 | 66 | | |
55 | 67 | | |
56 | 68 | | |
57 | | - | |
| 69 | + | |
| 70 | + | |
58 | 71 | | |
59 | | - | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
60 | 75 | | |
61 | 76 | | |
62 | | - | |
63 | | - | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
64 | 81 | | |
65 | | - | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
66 | 85 | | |
67 | 86 | | |
68 | | - | |
69 | | - | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
70 | 90 | | |
71 | | - | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
72 | 94 | | |
73 | 95 | | |
74 | 96 | | |
75 | 97 | | |
76 | 98 | | |
77 | 99 | | |
78 | 100 | | |
79 | | - | |
80 | | - | |
| 101 | + | |
81 | 102 | | |
82 | 103 | | |
83 | 104 | | |
84 | 105 | | |
85 | 106 | | |
86 | | - | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
87 | 119 | | |
88 | | - | |
89 | | - | |
90 | | - | |
| 120 | + | |
| 121 | + | |
91 | 122 | | |
92 | 123 | | |
93 | 124 | | |
| |||
97 | 128 | | |
98 | 129 | | |
99 | 130 | | |
100 | | - | |
101 | | - | |
| 131 | + | |
102 | 132 | | |
103 | 133 | | |
104 | 134 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| 5 | + | |
| 6 | + | |
5 | 7 | | |
6 | 8 | | |
7 | 9 | | |
| |||
57 | 59 | | |
58 | 60 | | |
59 | 61 | | |
60 | | - | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
61 | 76 | | |
62 | | - | |
| 77 | + | |
| 78 | + | |
63 | 79 | | |
64 | 80 | | |
65 | | - | |
66 | | - | |
67 | | - | |
68 | | - | |
69 | | - | |
70 | | - | |
| 81 | + | |
71 | 82 | | |
72 | | - | |
73 | | - | |
| 83 | + | |
74 | 84 | | |
75 | | - | |
76 | | - | |
77 | | - | |
78 | | - | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
79 | 89 | | |
80 | | - | |
81 | | - | |
82 | | - | |
83 | | - | |
84 | | - | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
85 | 94 | | |
86 | | - | |
87 | | - | |
88 | | - | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
89 | 98 | | |
90 | 99 | | |
91 | | - | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
92 | 104 | | |
93 | | - | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
94 | 114 | | |
95 | 115 | | |
96 | | - | |
97 | | - | |
98 | | - | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
99 | 125 | | |
100 | 126 | | |
101 | 127 | | |
| |||
116 | 142 | | |
117 | 143 | | |
118 | 144 | | |
119 | | - | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
120 | 151 | | |
| 152 | + | |
121 | 153 | | |
122 | 154 | | |
123 | | - | |
124 | | - | |
125 | | - | |
126 | | - | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
127 | 158 | | |
128 | | - | |
129 | 159 | | |
130 | | - | |
131 | 160 | | |
132 | 161 | | |
133 | 162 | | |
134 | | - | |
135 | | - | |
136 | | - | |
137 | | - | |
138 | | - | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
139 | 167 | | |
140 | 168 | | |
Binary file not shown.
0 commit comments