vs-threading
vs-threading copied to clipboard
VSTHRD110 fires in Expression-valued scenarios
Bug description
When a Task-valued lambda is passed into a method expecting an Expression<> argument, VSTRD110 shouldn't fire, because no invocation is likely being made.
Repro steps
Code to reproduce the behavior.
Write a test using Moq library in VisualStudio:
using Moq;
var mock = new Mock<ILogger>();
mock.Verify(
x => x.InfoAsync(It.IsAny<string>()),
Times.Never,
"No Log should have been written");
public interface ILogger
{
Task InfoAsync(string message);
}
Expected behavior
No warning.
Actual behavior
VSTHRD110 warning.

- Version used: 17.5.22
- Application (if applicable): Microsoft Visual Studio Enterprise 2022 (64-bit) - Current Version 17.4.5
Additional context
Add any other context about the problem here.
Thank you for this report. It makes sense and I agree with your suggestion.