@@ -15,7 +15,7 @@ public void NotTest()
1515
1616 if ( ! ( o != null ) )
1717 {
18- o . GetHashCode ( ) ; // BAD ( always)
18+ o . GetHashCode ( ) ; // $ Alert[cs/dereferenced-value-is- always-null]
1919 }
2020 }
2121
@@ -39,7 +39,7 @@ public void AssertTest()
3939 {
4040 var s = Maybe ( ) ? null : "" ;
4141 Debug . Assert ( s == null ) ;
42- s . ToString ( ) ; // BAD ( always)
42+ s . ToString ( ) ; // $ Alert[cs/dereferenced-value-is- always-null]
4343
4444 s = Maybe ( ) ? null : "" ;
4545 Debug . Assert ( s != null ) ;
@@ -50,22 +50,22 @@ public void AssertNullTest()
5050 {
5151 var o1 = new object ( ) ;
5252 AssertNull ( o1 ) ;
53- o1 . ToString ( ) ; // BAD (always) (false negative)
53+ o1 . ToString ( ) ; // $ MISSING: Alert[cs/dereferenced-value-is-always-null]
5454
5555 var o2 = Maybe ( ) ? null : "" ;
5656 Assert . IsNull ( o2 ) ;
57- o2 . ToString ( ) ; // BAD ( always)
57+ o2 . ToString ( ) ; // $ Alert[cs/dereferenced-value-is- always-null]
5858 }
5959
6060 public void AssertNotNullTest ( )
6161 {
62- var o1 = Maybe ( ) ? null : new object ( ) ;
62+ var o1 = Maybe ( ) ? null : new object ( ) ; // $ Source[cs/dereferenced-value-may-be-null]
6363 AssertNonNull ( o1 ) ;
64- o1 . ToString ( ) ; // GOOD (false positive)
64+ o1 . ToString ( ) ; // $ SPURIOUS (false positive): Alert[cs/dereferenced-value-may-be-null]
6565
66- var o2 = Maybe ( ) ? null : new object ( ) ;
66+ var o2 = Maybe ( ) ? null : new object ( ) ; // $ Source[cs/dereferenced-value-may-be-null]
6767 AssertNonNull ( o1 ) ;
68- o2 . ToString ( ) ; // BAD (maybe)
68+ o2 . ToString ( ) ; // $ Alert[cs/dereferenced-value-may-be-null]
6969
7070 var o3 = Maybe ( ) ? null : new object ( ) ;
7171 Assert . IsNotNull ( o3 ) ;
@@ -91,16 +91,16 @@ public void InstanceOf()
9191
9292 public void Lock ( )
9393 {
94- var o = Maybe ( ) ? null : new object ( ) ;
95- lock ( o ) // BAD (maybe)
94+ var o = Maybe ( ) ? null : new object ( ) ; // $ Source[cs/dereferenced-value-may-be-null]
95+ lock ( o ) // $ Alert[cs/dereferenced-value-may-be-null]
9696 o . ToString ( ) ; // GOOD
9797 }
9898
9999 public void Foreach ( IEnumerable < int > list )
100100 {
101101 if ( Maybe ( ) )
102- list = null ;
103- foreach ( var x in list ) // BAD (maybe)
102+ list = null ; // $ Source[cs/dereferenced-value-may-be-null]
103+ foreach ( var x in list ) // $ Alert[cs/dereferenced-value-may-be-null]
104104 {
105105 x . ToString ( ) ; // GOOD
106106 list . ToString ( ) ; // GOOD
@@ -159,23 +159,23 @@ public void DoWhile()
159159 s = null ;
160160 do
161161 {
162- s . ToString ( ) ; // BAD ( always)
162+ s . ToString ( ) ; // $ Alert[cs/dereferenced-value-is- always-null]
163163 s = null ;
164164 }
165165 while ( s != null ) ;
166166
167167 s = null ;
168168 do
169169 {
170- s . ToString ( ) ; // BAD ( always)
170+ s . ToString ( ) ; // $ Alert[cs/dereferenced-value-is- always-null]
171171 }
172172 while ( s != null ) ;
173173
174174 s = "" ;
175175 do
176176 {
177- s . ToString ( ) ; // BAD (maybe)
178- s = null ;
177+ s . ToString ( ) ; // $ Alert[cs/dereferenced-value-may-be-null]
178+ s = null ; // $ Source[cs/dereferenced-value-may-be-null]
179179 }
180180 while ( true ) ;
181181 }
@@ -193,15 +193,15 @@ public void While()
193193 s = null ;
194194 while ( b )
195195 {
196- s . ToString ( ) ; // BAD ( always)
196+ s . ToString ( ) ; // $ Alert[cs/dereferenced-value-is- always-null]
197197 s = null ;
198198 }
199199
200200 s = "" ;
201201 while ( true )
202202 {
203- s . ToString ( ) ; // BAD (maybe)
204- s = null ;
203+ s . ToString ( ) ; // $ Alert[cs/dereferenced-value-may-be-null]
204+ s = null ; // $ Source[cs/dereferenced-value-may-be-null]
205205 }
206206 }
207207
@@ -215,12 +215,12 @@ public void If()
215215 }
216216
217217 if ( s == null )
218- s . ToString ( ) ; // BAD ( always)
218+ s . ToString ( ) ; // $ Alert[cs/dereferenced-value-is- always-null]
219219
220220 s = "" ;
221221 if ( s != null && s . Length % 2 == 0 )
222- s = null ;
223- s . ToString ( ) ; // BAD (maybe)
222+ s = null ; // $ Source[cs/dereferenced-value-may-be-null]
223+ s . ToString ( ) ; // $ Alert[cs/dereferenced-value-may-be-null]
224224 }
225225
226226 public void For ( )
@@ -230,23 +230,23 @@ public void For()
230230 {
231231 s . ToString ( ) ; // GOOD
232232 }
233- s . ToString ( ) ; // BAD ( always)
233+ s . ToString ( ) ; // $ Alert[cs/dereferenced-value-is- always-null]
234234
235235 for ( s = null ; s == null ; s = null )
236236 {
237- s . ToString ( ) ; // BAD ( always)
237+ s . ToString ( ) ; // $ Alert[cs/dereferenced-value-is- always-null]
238238 }
239239
240- for ( s = "" ; ; s = null )
240+ for ( s = "" ; ; s = null ) // $ Source[cs/dereferenced-value-may-be-null]
241241 {
242- s . ToString ( ) ; // BAD (maybe)
242+ s . ToString ( ) ; // $ Alert[cs/dereferenced-value-may-be-null]
243243 }
244244 }
245245
246246 public void ArrayAssignTest ( )
247247 {
248248 int [ ] a = null ;
249- a [ 0 ] = 10 ; // BAD ( always)
249+ a [ 0 ] = 10 ; // $ Alert[cs/dereferenced-value-is- always-null]
250250
251251 a = new int [ 10 ] ;
252252 a [ 0 ] = 42 ; // GOOD
@@ -257,8 +257,8 @@ public void Access()
257257 int [ ] ia = null ;
258258 string [ ] sa = null ;
259259
260- ia [ 1 ] = 0 ; // BAD ( always)
261- var temp = sa . Length ; // BAD ( always)
260+ ia [ 1 ] = 0 ; // $ Alert[cs/dereferenced-value-is- always-null]
261+ var temp = sa . Length ; // $ Alert[cs/dereferenced-value-is- always-null]
262262
263263 ia [ 1 ] = 0 ; // BAD (always), but not first
264264 temp = sa . Length ; // BAD (always), but not first
0 commit comments