Skip to content

Commit adb3c4b

Browse files
CopilotYunchuWang
andcommitted
Address code review feedback
- Extract entity-only check into ShouldSkipGenerationForDurableFunctions helper method - Improve comments to clarify what class-based tasks refers to - Add documentation about GeneratedActivityContext methods being retained but unused in DF scenarios Co-authored-by: YunchuWang <[email protected]>
1 parent d4676ae commit adb3c4b

File tree

1 file changed

+30
-11
lines changed

1 file changed

+30
-11
lines changed

src/Generators/DurableTaskSourceGenerator.cs

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,25 @@ public void Initialize(IncrementalGeneratorInitializationContext context)
230230
return null;
231231
}
232232

233+
/// <summary>
234+
/// Determines if code generation should be skipped for Durable Functions scenarios.
235+
/// Returns true if only entities exist, since entities don't generate extension methods
236+
/// and Durable Functions handles their registration natively.
237+
/// </summary>
238+
static bool ShouldSkipGenerationForDurableFunctions(
239+
bool isDurableFunctions,
240+
List<DurableTaskTypeInfo> orchestrators,
241+
List<DurableTaskTypeInfo> activities,
242+
ImmutableArray<DurableEventTypeInfo> allEvents,
243+
ImmutableArray<DurableFunction> allFunctions)
244+
{
245+
return isDurableFunctions &&
246+
orchestrators.Count == 0 &&
247+
activities.Count == 0 &&
248+
allEvents.Length == 0 &&
249+
allFunctions.Length == 0;
250+
}
251+
233252
static void Execute(
234253
SourceProductionContext context,
235254
Compilation compilation,
@@ -277,14 +296,10 @@ static void Execute(
277296
// With Durable Functions' native support for class-based invocations (PR #3229),
278297
// we no longer generate [Function] definitions for class-based tasks.
279298
// If we have ONLY entities (no orchestrators, no activities, no events, no method-based functions),
280-
// then there's nothing to generate for Durable Functions scenarios.
281-
if (isDurableFunctions &&
282-
orchestrators.Count == 0 &&
283-
activities.Count == 0 &&
284-
allEvents.Length == 0 &&
285-
allFunctions.Length == 0)
299+
// then there's nothing to generate for Durable Functions scenarios since entities don't have
300+
// extension methods.
301+
if (ShouldSkipGenerationForDurableFunctions(isDurableFunctions, orchestrators, activities, allEvents, allFunctions))
286302
{
287-
// Only entities remain, and entities don't generate extension methods
288303
return;
289304
}
290305

@@ -312,8 +327,10 @@ public static class GeneratedDurableTaskExtensions
312327
{");
313328

314329
// Note: With Durable Functions' native support for class-based invocations (PR #3229),
315-
// we no longer generate [Function] definitions for class-based tasks to avoid duplicates.
316-
// The Durable Functions runtime now handles this automatically.
330+
// we no longer generate [Function] attribute definitions for class-based orchestrators,
331+
// activities, and entities (i.e., classes that implement ITaskOrchestrator, ITaskActivity,
332+
// or ITaskEntity and are decorated with [DurableTask] attribute). The Durable Functions
333+
// runtime now handles function registration for these types automatically.
317334
// We continue to generate extension methods for type-safe invocation.
318335

319336
foreach (DurableTaskTypeInfo orchestrator in orchestrators)
@@ -344,8 +361,10 @@ public static class GeneratedDurableTaskExtensions
344361
AddEventSendMethod(sourceBuilder, eventInfo);
345362
}
346363

347-
// Note: GeneratedActivityContext is no longer needed since Durable Functions
348-
// now natively handles class-based invocations without source generation.
364+
// Note: The GeneratedActivityContext class and AddGeneratedActivityContextClass method
365+
// are no longer needed for Durable Functions since the runtime now natively handles
366+
// class-based invocations. These helper methods remain in the codebase but are not
367+
// called in Durable Functions scenarios.
349368

350369
if (!isDurableFunctions)
351370
{

0 commit comments

Comments
 (0)