diff --git a/src/Zomp.SyncMethodGenerator/AsyncToSyncRewriter.cs b/src/Zomp.SyncMethodGenerator/AsyncToSyncRewriter.cs index 6b12bc3..4fbc8d3 100644 --- a/src/Zomp.SyncMethodGenerator/AsyncToSyncRewriter.cs +++ b/src/Zomp.SyncMethodGenerator/AsyncToSyncRewriter.cs @@ -433,7 +433,14 @@ bool IsValidParameter(ParameterSyntax ps) return UnwrapExtension(@base, isMemory, reducedFrom, memberAccess.Expression); } - if (memberAccess.Name is not IdentifierNameSyntax { Identifier.ValueText: { } name }) + var name = memberAccess.Name switch + { + IdentifierNameSyntax ins2 => ins2.Identifier.ValueText, + GenericNameSyntax gns => gns.Identifier.ValueText, + _ => null, + }; + + if (name is null) { return @base; } diff --git a/tests/Generator.Tests/UnitTests.cs b/tests/Generator.Tests/UnitTests.cs index ab5ba3c..8587198 100644 --- a/tests/Generator.Tests/UnitTests.cs +++ b/tests/Generator.Tests/UnitTests.cs @@ -167,14 +167,16 @@ public async Task MyFuncAsync() } """.Verify(); - [Fact] - public Task TaskOfT() => """ + [Theory] + [InlineData(true)] + [InlineData(false)] + public Task TaskOfT(bool explicitType) => $$""" [CreateSyncVersion] public static async Task GetPointAsync() { - return await Task.FromResult(new Point(1, 2)); + return await Task.FromResult{{(explicitType ? "" : string.Empty)}}(new Point(1, 2)); } -""".Verify(); +""".Verify(disableUnique: true); [Fact] public Task TaskOfTArray() => """