Skip to content

Fix crash on malformed object destructuring assignment - #63972

Open
Mateusz Burzyński (Andarist) wants to merge 1 commit into
microsoft:mainfrom
Andarist:fix/crash-malformed-object-destructuring
Open

Fix crash on malformed object destructuring assignment#63972
Mateusz Burzyński (Andarist) wants to merge 1 commit into
microsoft:mainfrom
Andarist:fix/crash-malformed-object-destructuring

Conversation

@Andarist

Copy link
Copy Markdown
Contributor

fixes #63963

Copilot AI balanced review requested due to automatic review settings August 23, 2026 17:30
@github-project-automation github-project-automation Bot moved this to Not started in PR Backlog Aug 23, 2026
@typescript-automation typescript-automation Bot added For Uncommitted Bug PR for untriaged, rejected, closed or missing bug labels Aug 23, 2026
}

func (tx *classFieldsTransformer) visitObjectAssignmentElement(node *ast.Node) *ast.Node {
debug.Assert(node != nil && ast.IsObjectBindingOrAssignmentElement(node))

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

It seems to me the assert here (and I've seen similar cases in the past) assumes a non-malformed source code. But those transformer paths still run over malformed nodes and it's the easiest to accept such subtrees

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds a compiler regression test for malformed object destructuring and prevents the class-fields transformer panic.

Changes:

  • Removes the triggering assertion.
  • Adds malformed-input test coverage and generated baselines.

Reviewed changes

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

Show a summary per file
File Description
tsc/internal/transformers/estransforms/classfields.go Changes malformed assignment handling.
tsc/testdata/tests/cases/compiler/malformedObjectDestructuringAssignmentClassFields.ts Adds the regression input.
tsc/testdata/baselines/reference/compiler/malformedObjectDestructuringAssignmentClassFields.errors.txt Records diagnostics.
tsc/testdata/baselines/reference/compiler/malformedObjectDestructuringAssignmentClassFields.js Records emit output.
tsc/testdata/baselines/reference/compiler/malformedObjectDestructuringAssignmentClassFields.symbols Records symbols.
tsc/testdata/baselines/reference/compiler/malformedObjectDestructuringAssignmentClassFields.types Records inferred types.

💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.

@@ -3318,7 +3318,6 @@ func (tx *classFieldsTransformer) visitAssignmentRestProperty(node *ast.Node) *a
}

func (tx *classFieldsTransformer) visitObjectAssignmentElement(node *ast.Node) *ast.Node {
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

For Uncommitted Bug PR for untriaged, rejected, closed or missing bug

Projects

Status: Not started

Development

Successfully merging this pull request may close these issues.

Crash: malformed object destructuring assignment panics in class fields transform

2 participants