Skip to content

VSTHRD110 fires in Expression-valued scenarios #1167

Description

@iouri-s

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.
image

  • 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.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions