diff --git a/src/Meziantou.Analyzer/Rules/NamedParameterAnalyzer.cs b/src/Meziantou.Analyzer/Rules/NamedParameterAnalyzer.cs index cd136e6cf..7385e252f 100644 --- a/src/Meziantou.Analyzer/Rules/NamedParameterAnalyzer.cs +++ b/src/Meziantou.Analyzer/Rules/NamedParameterAnalyzer.cs @@ -189,6 +189,9 @@ bool IsParams(SyntaxNode node) if (IsMethod(invokedMethodSymbol, taskTokenType, nameof(Task.FromResult))) return; + if (IsMethod(invokedMethodSymbol, valueTaskTokenType, nameof(Task.FromResult))) + return; + if (IsMethod(invokedMethodSymbol, taskCompletionSourceType, nameof(TaskCompletionSource.SetResult))) return; diff --git a/tests/Meziantou.Analyzer.Test/Rules/NamedParameterAnalyzerTests.cs b/tests/Meziantou.Analyzer.Test/Rules/NamedParameterAnalyzerTests.cs index d94941f80..1d8b7a6fa 100644 --- a/tests/Meziantou.Analyzer.Test/Rules/NamedParameterAnalyzerTests.cs +++ b/tests/Meziantou.Analyzer.Test/Rules/NamedParameterAnalyzerTests.cs @@ -483,6 +483,24 @@ await CreateProjectBuilder() .WithSourceCode(SourceCode) .ValidateAsync(); } + + [Fact] + public async Task ValueTask_FromResult_ShouldNotReportDiagnostic() + { + const string SourceCode = @" +class TypeName +{ + public void Test() + { + _ = System.Threading.Tasks.ValueTask.FromResult?>(null); + } +} +"; + await CreateProjectBuilder() + .WithTargetFramework(TargetFramework.Net6_0) + .WithSourceCode(SourceCode) + .ValidateAsync(); + } [Fact] public async Task Expression_ShouldNotReportDiagnostic()