Skip to content

Conversation

stephentoub
Copy link
Member

@stephentoub stephentoub commented Jul 28, 2025

Because of some possible complicated control flow, the compiler thinks these variables are not deterministically initialized.

This repros back to .NET 7 when the source generator was first introduced. It's just a really rare set of constructs that triggers this and so we haven't seen it come up before.

Because of some possible complicated control flow, the compiler thinks these variables are not deterministically initialized.
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR fixes a compilation failure in the regex source generator that occurs with specific lazy loop constructs. The issue stems from the compiler's inability to determine that certain variables are definitively initialized due to complex control flow patterns in generated code.

  • Moves variable declarations for lazy loop position tracking variables to a more appropriate scope
  • Adds comprehensive test cases to verify the fix works for problematic regex patterns with lazy loops and alternations

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
src/libraries/System.Text.RegularExpressions/gen/RegexGenerator.Emitter.cs Fixes variable initialization issue by moving declarations to additionalDeclarations and separating assignment
src/libraries/System.Text.RegularExpressions/tests/FunctionalTests/Regex.Match.Tests.cs Adds test cases for regex patterns that previously caused compilation failures

Copy link
Contributor

Tagging subscribers to this area: @dotnet/area-system-text-regularexpressions
See info in area-owners.md if you want to be subscribed.

@stephentoub stephentoub merged commit 26d4886 into dotnet:main Jul 28, 2025
87 of 89 checks passed
@stephentoub stephentoub deleted the fixlazygen branch July 28, 2025 20:25
@github-actions github-actions bot locked and limited conversation to collaborators Aug 28, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants