Skip to content

Commit 15de5cf

Browse files
committed
Check that IDISP008 warns.
#185
1 parent 8bace7a commit 15de5cf

1 file changed

Lines changed: 53 additions & 0 deletions

File tree

IDisposableAnalyzers.Test/IDISP008DoNontMixInjectedAndCreatedForMemberTests/Diagnostics.Field.cs

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,59 @@ public C(IDisposable disposable)
202202
}";
203203
RoslynAssert.Diagnostics(Analyzer, ExpectedDiagnostic, Disposable, code);
204204
}
205+
206+
[Test]
207+
public static void Issue185()
208+
{
209+
var c1 = @"
210+
namespace N
211+
{
212+
using System;
213+
214+
public class C1 : IDisposable
215+
{
216+
public void Dispose()
217+
{
218+
}
219+
}
220+
}";
221+
var code = @"
222+
namespace N
223+
{
224+
using System;
225+
226+
public class C
227+
{
228+
↓private C1 _c1;
229+
230+
public C() { }
231+
232+
public C(C1 c1)
233+
{
234+
_c1 = c1;
235+
}
236+
237+
public C1 M1() => _c1;
238+
239+
public C1 M2() => _c1 = new C1();
240+
241+
public C1 GetOrCreateFoo()
242+
{
243+
var c1 = this.M1();
244+
if (c1 != null)
245+
return c1;
246+
247+
c1 = M2();
248+
if (c1 != null)
249+
return c1;
250+
251+
throw new Exception();
252+
}
253+
}
254+
}";
255+
256+
RoslynAssert.Diagnostics(Analyzer, ExpectedDiagnostic, c1, code);
257+
}
205258
}
206259
}
207260
}

0 commit comments

Comments
 (0)