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
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions