Fix PrettyPrint corruption when user-definition header has a trailing…#3052
Open
anderson-joyle wants to merge 3 commits intomainfrom
Open
Fix PrettyPrint corruption when user-definition header has a trailing…#3052anderson-joyle wants to merge 3 commits intomainfrom
anderson-joyle wants to merge 3 commits intomainfrom
Conversation
… // comment PrettyPrintVisitor.FormatUserDefinitions joined the trimmed declaration with the assignment operator using a single-space separator. When the original source placed a // line comment on the header line and the '=' body on the next line, Trim() stripped the newline that terminated the comment, and the subsequent " = " pushed the operator inside the // comment, corrupting the output so it could no longer be parsed back. Detect when the trimmed declaration ends inside an unterminated // line comment (tracking /*..*/ nesting so a // inside a block comment is ignored) and, in that case, insert a newline + 4-space indent before the operator. Applied uniformly to NamedFormula, UDF, and DefinedType branches. Adds two xUnit InlineData cases in TestUserDefinitionsPrettyPrint: the exact repro from the issue and a mixed /*..*/ + // UDF header that covers the generalization named in the issue title. Issue: #2998 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Contributor
|
✅ No public API change. |
Contributor
|
✅ No public API change. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
… // comment
PrettyPrintVisitor.FormatUserDefinitions joined the trimmed declaration with the assignment operator using a single-space separator. When the original source placed a // line comment on the header line and the '=' body on the next line, Trim() stripped the newline that terminated the comment, and the subsequent " = " pushed the operator inside the // comment, corrupting the output so it could no longer be parsed back.
Detect when the trimmed declaration ends inside an unterminated // line comment (tracking /../ nesting so a // inside a block comment is ignored) and, in that case, insert a newline + 4-space indent before the operator. Applied uniformly to NamedFormula, UDF, and DefinedType branches.
Adds two xUnit InlineData cases in TestUserDefinitionsPrettyPrint: the exact repro from the issue and a mixed /../ + // UDF header that covers the generalization named in the issue title.
Issue: #2998