From 7587aa5b6563bfce5580b53ac65fd8b74264b417 Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Mon, 29 Sep 2025 17:00:47 -0700 Subject: [PATCH 1/2] Fix translation error in binding of binary expressions --- internal/binder/binder.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/binder/binder.go b/internal/binder/binder.go index b56d369d00..8fde6ff763 100644 --- a/internal/binder/binder.go +++ b/internal/binder/binder.go @@ -2243,12 +2243,12 @@ func (b *Binder) bindBinaryExpressionFlow(node *ast.Node) { b.bind(expr.Left) b.bind(expr.Type) if operator == ast.KindCommaToken { - b.maybeBindExpressionFlowIfCall(node) + b.maybeBindExpressionFlowIfCall(expr.Left) } b.bind(expr.OperatorToken) b.bind(expr.Right) if operator == ast.KindCommaToken { - b.maybeBindExpressionFlowIfCall(node) + b.maybeBindExpressionFlowIfCall(expr.Right) } if ast.IsAssignmentOperator(operator) && !ast.IsAssignmentTarget(node) { b.bindAssignmentTargetFlow(expr.Left) From b0a0b496440e731a35a44f3ff9623e752e6689e4 Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Mon, 29 Sep 2025 17:08:51 -0700 Subject: [PATCH 2/2] Accept new baselines --- ...FlowCommaExpressionAssertionMultiple.types | 10 +++---- ...ommaExpressionAssertionMultiple.types.diff | 30 ------------------- 2 files changed, 5 insertions(+), 35 deletions(-) delete mode 100644 testdata/baselines/reference/submodule/compiler/controlFlowCommaExpressionAssertionMultiple.types.diff diff --git a/testdata/baselines/reference/submodule/compiler/controlFlowCommaExpressionAssertionMultiple.types b/testdata/baselines/reference/submodule/compiler/controlFlowCommaExpressionAssertionMultiple.types index 7c7e63b498..85baf28b32 100644 --- a/testdata/baselines/reference/submodule/compiler/controlFlowCommaExpressionAssertionMultiple.types +++ b/testdata/baselines/reference/submodule/compiler/controlFlowCommaExpressionAssertionMultiple.types @@ -20,10 +20,10 @@ function func(foo: any, bar: any) { >bar : any foo; ->foo : any +>foo : number bar; ->bar : any +>bar : string } function func2(foo: any, bar: any, baz: any) { @@ -46,12 +46,12 @@ function func2(foo: any, bar: any, baz: any) { >baz : any foo; ->foo : any +>foo : number bar; ->bar : any +>bar : string baz; ->baz : any +>baz : boolean } diff --git a/testdata/baselines/reference/submodule/compiler/controlFlowCommaExpressionAssertionMultiple.types.diff b/testdata/baselines/reference/submodule/compiler/controlFlowCommaExpressionAssertionMultiple.types.diff deleted file mode 100644 index 35c9ff18aa..0000000000 --- a/testdata/baselines/reference/submodule/compiler/controlFlowCommaExpressionAssertionMultiple.types.diff +++ /dev/null @@ -1,30 +0,0 @@ ---- old.controlFlowCommaExpressionAssertionMultiple.types -+++ new.controlFlowCommaExpressionAssertionMultiple.types -@@= skipped -19, +19 lines =@@ - >bar : any - - foo; -->foo : number -+>foo : any - - bar; -->bar : string -+>bar : any - } - - function func2(foo: any, bar: any, baz: any) { -@@= skipped -26, +26 lines =@@ - >baz : any - - foo; -->foo : number -+>foo : any - - bar; -->bar : string -+>bar : any - - baz; -->baz : boolean -+>baz : any - }