public void Test() { var foo = new Foo(); Debug.Assert(true); Debug.Fail("message"); Debug.Assert(foo.Contains("a")); Debug.Assert(foo.DoStuff()); Debug.Assert(foo.Destroy()); Debug.Assert(foo.CanAddItem()); Debug.Assert(foo.SetEquals()); Debug.Assert(foo.Remove("a")); // Noncompliant {{Expressions used in 'Debug.Assert' should not produce side effects.}} // ^^^^^^^^^^^^^^^^^ Debug.Assert((foo?.Remove("a")).Value); // Noncompliant // ^^^^^^^^^^^^^^^^^^^^^^^^^^ Debug.Assert(foo.RemoveMe()); // Noncompliant Debug.Assert(foo.Delete()); // Noncompliant Debug.Assert(foo.Put()); // Noncompliant Debug.Assert(foo.Set()); // Noncompliant Debug.Assert(foo.Add()); // Noncompliant Debug.Assert(foo.Pop()); // Noncompliant Debug.Assert(foo.Update()); // Noncompliant Debug.Assert(foo.Retain()); // Noncompliant Debug.Assert(foo.Insert()); // Noncompliant Debug.Assert(foo.Push()); // Noncompliant Debug.Assert(foo.Append()); // Noncompliant Debug.Assert(foo.Clear()); // Noncompliant Debug.Assert(foo.Dequeue()); // Noncompliant Debug.Assert(foo.Enqueue()); // Noncompliant Debug.Assert(foo.Dispose()); // Noncompliant Debug.Assert((foo.Me()?.Me().Clear()).Value); // Noncompliant }