diff --git a/EasySourceGenerators.Generators/IncrementalGenerators/GeneratesMethodGenerationTargetCollector.cs b/EasySourceGenerators.Generators/IncrementalGenerators/GeneratesMethodGenerationTargetCollector.cs index 7d69104..bacb1d4 100644 --- a/EasySourceGenerators.Generators/IncrementalGenerators/GeneratesMethodGenerationTargetCollector.cs +++ b/EasySourceGenerators.Generators/IncrementalGenerators/GeneratesMethodGenerationTargetCollector.cs @@ -111,6 +111,18 @@ internal static List Collect( continue; } + string generatorReturnType = methodSymbol.ReturnType.ToDisplayString(); + string targetReturnType = partialMethodSymbol.ReturnType.ToDisplayString(); + + if (generatorReturnType != IMethodImplementationGeneratorFullName && generatorReturnType != targetReturnType) + { + context.ReportDiagnostic(Diagnostic.Create( + GeneratesMethodGeneratorDiagnostics.MethodBodyGeneratorInvalidReturnType, + generatorMethod.ReturnType.GetLocation(), + methodSymbol.Name)); + continue; + } + validMethods.Add(new GeneratesMethodGenerationTarget( generatorMethod, methodSymbol,