From 44bcf5045125257e8a3860295e8dff7f12120bfa Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Fri, 14 Nov 2025 07:56:32 -0800 Subject: [PATCH 1/2] Fix misplaced parentheses --- internal/checker/checker.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/checker/checker.go b/internal/checker/checker.go index ccade6b56f..aeb0d97678 100644 --- a/internal/checker/checker.go +++ b/internal/checker/checker.go @@ -12572,7 +12572,7 @@ func (c *Checker) isIndirectCall(node *ast.Node) bool { right := node.AsBinaryExpression().Right return ast.IsParenthesizedExpression(node.Parent) && ast.IsNumericLiteral(left) && left.Text() == "0" && (ast.IsCallExpression(node.Parent.Parent) && node.Parent.Parent.Expression() == node.Parent || - ast.IsTaggedTemplateExpression(node.Parent.Parent) && (ast.IsAccessExpression(right) || ast.IsIdentifier(right) && right.Text() == "eval")) + ast.IsTaggedTemplateExpression(node.Parent.Parent)) && (ast.IsAccessExpression(right) || ast.IsIdentifier(right) && right.Text() == "eval") } func (c *Checker) checkInstanceOfExpression(left *ast.Expression, right *ast.Expression, leftType *Type, rightType *Type, checkMode CheckMode) *Type { From a39a0728e9dd3439a7fecb848acb41ef5e564d1f Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Fri, 14 Nov 2025 07:56:53 -0800 Subject: [PATCH 2/2] Accept new baselines --- .../commaOperatorLeftSideUnused.errors.txt | 5 +++- ...ommaOperatorLeftSideUnused.errors.txt.diff | 25 ------------------- .../submodule/compiler/evalAfter0.errors.txt | 10 ++++++++ .../compiler/evalAfter0.errors.txt.diff | 14 ----------- 4 files changed, 14 insertions(+), 40 deletions(-) delete mode 100644 testdata/baselines/reference/submodule/compiler/commaOperatorLeftSideUnused.errors.txt.diff create mode 100644 testdata/baselines/reference/submodule/compiler/evalAfter0.errors.txt delete mode 100644 testdata/baselines/reference/submodule/compiler/evalAfter0.errors.txt.diff diff --git a/testdata/baselines/reference/submodule/compiler/commaOperatorLeftSideUnused.errors.txt b/testdata/baselines/reference/submodule/compiler/commaOperatorLeftSideUnused.errors.txt index 9782db2c66..b44bd405e2 100644 --- a/testdata/baselines/reference/submodule/compiler/commaOperatorLeftSideUnused.errors.txt +++ b/testdata/baselines/reference/submodule/compiler/commaOperatorLeftSideUnused.errors.txt @@ -21,9 +21,10 @@ commaOperatorLeftSideUnused.ts(38,7): error TS2695: Left side of comma operator commaOperatorLeftSideUnused.ts(39,7): error TS2695: Left side of comma operator is unused and has no side effects. commaOperatorLeftSideUnused.ts(40,7): error TS2695: Left side of comma operator is unused and has no side effects. commaOperatorLeftSideUnused.ts(41,7): error TS2695: Left side of comma operator is unused and has no side effects. +commaOperatorLeftSideUnused.ts(42,7): error TS2695: Left side of comma operator is unused and has no side effects. -==== commaOperatorLeftSideUnused.ts (23 errors) ==== +==== commaOperatorLeftSideUnused.ts (24 errors) ==== var xx: any; var yy: any; @@ -112,6 +113,8 @@ commaOperatorLeftSideUnused.ts(41,7): error TS2695: Left side of comma operator ~~~ !!! error TS2695: Left side of comma operator is unused and has no side effects. xx = (0, xx)(); + ~ +!!! error TS2695: Left side of comma operator is unused and has no side effects. // OK cases xx = (xx ? x++ : 4, 10); diff --git a/testdata/baselines/reference/submodule/compiler/commaOperatorLeftSideUnused.errors.txt.diff b/testdata/baselines/reference/submodule/compiler/commaOperatorLeftSideUnused.errors.txt.diff deleted file mode 100644 index bf62524147..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commaOperatorLeftSideUnused.errors.txt.diff +++ /dev/null @@ -1,25 +0,0 @@ ---- old.commaOperatorLeftSideUnused.errors.txt -+++ new.commaOperatorLeftSideUnused.errors.txt -@@= skipped -20, +20 lines =@@ - commaOperatorLeftSideUnused.ts(39,7): error TS2695: Left side of comma operator is unused and has no side effects. - commaOperatorLeftSideUnused.ts(40,7): error TS2695: Left side of comma operator is unused and has no side effects. - commaOperatorLeftSideUnused.ts(41,7): error TS2695: Left side of comma operator is unused and has no side effects. --commaOperatorLeftSideUnused.ts(42,7): error TS2695: Left side of comma operator is unused and has no side effects. -- -- --==== commaOperatorLeftSideUnused.ts (24 errors) ==== -+ -+ -+==== commaOperatorLeftSideUnused.ts (23 errors) ==== - var xx: any; - var yy: any; - -@@= skipped -92, +91 lines =@@ - ~~~ - !!! error TS2695: Left side of comma operator is unused and has no side effects. - xx = (0, xx)(); -- ~ --!!! error TS2695: Left side of comma operator is unused and has no side effects. - - // OK cases - xx = (xx ? x++ : 4, 10); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/evalAfter0.errors.txt b/testdata/baselines/reference/submodule/compiler/evalAfter0.errors.txt new file mode 100644 index 0000000000..fd747ba80e --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/evalAfter0.errors.txt @@ -0,0 +1,10 @@ +evalAfter0.ts(4,2): error TS2695: Left side of comma operator is unused and has no side effects. + + +==== evalAfter0.ts (1 errors) ==== + (0,eval)("10"); // fine: special case for eval + + declare var eva; + (0,eva)("10"); // error: no side effect left of comma (suspect of missing method name or something) + ~ +!!! error TS2695: Left side of comma operator is unused and has no side effects. \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/evalAfter0.errors.txt.diff b/testdata/baselines/reference/submodule/compiler/evalAfter0.errors.txt.diff deleted file mode 100644 index 720d6a66af..0000000000 --- a/testdata/baselines/reference/submodule/compiler/evalAfter0.errors.txt.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.evalAfter0.errors.txt -+++ new.evalAfter0.errors.txt -@@= skipped -0, +0 lines =@@ --evalAfter0.ts(4,2): error TS2695: Left side of comma operator is unused and has no side effects. -- -- --==== evalAfter0.ts (1 errors) ==== -- (0,eval)("10"); // fine: special case for eval -- -- declare var eva; -- (0,eva)("10"); // error: no side effect left of comma (suspect of missing method name or something) -- ~ --!!! error TS2695: Left side of comma operator is unused and has no side effects. -+ \ No newline at end of file