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) 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 - }