namespace BizHawk.Tests.Analyzers; using Verify = Microsoft.CodeAnalysis.CSharp.Testing.CSharpAnalyzerVerifier< BizHawk.Analyzers.TryGetValueImplicitDiscardAnalyzer, Microsoft.CodeAnalysis.Testing.DefaultVerifier>; [TestClass] public sealed class TryGetValueImplicitDiscardAnalyzerTests { [TestMethod] public Task CheckMisuseOfTryGetValue() => Verify.VerifyAnalyzerAsync(""" using System.Collections.Generic; public static class Cases { private static Dictionary MakeDict() => new(); private sealed class CustomDict { public bool TryGetValue(K key, out V val) { val = default; return false; } } private static void Z() => _ = MakeDict().TryGetValue("z", out _); private static void A() => MakeDict(){|BHI1200:.TryGetValue("a", out _)|}; private static void B() => ((IDictionary) MakeDict()){|BHI1200:.TryGetValue("b", out _)|}; private static void C() => ((IReadOnlyDictionary) MakeDict()){|BHI1200:.TryGetValue("c", out _)|}; private static void D() => new CustomDict(){|BHI1200:.TryGetValue("d", out _)|}; } """); }