From 8155edf6d85b1e80aa0ea5e823893cd5d1c3d707 Mon Sep 17 00:00:00 2001 From: camc314 <18101008+camc314@users.noreply.github.com> Date: Sun, 25 Jan 2026 18:32:17 +0000 Subject: [PATCH] feat(semantic): add TS1049 code to diagnostic (#18535) https://github.com/microsoft/typescript/blob/16b933fb7bff04371fe9ec8525a8e90afa3174d4/src/compiler/diagnosticMessages.json#L146-L149 --- crates/oxc_parser/src/diagnostics.rs | 2 +- tasks/coverage/snapshots/parser_babel.snap | 20 +++++++++---------- .../coverage/snapshots/parser_typescript.snap | 18 ++++++++--------- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/crates/oxc_parser/src/diagnostics.rs b/crates/oxc_parser/src/diagnostics.rs index 529789255134f..ff7dd87a92a4d 100644 --- a/crates/oxc_parser/src/diagnostics.rs +++ b/crates/oxc_parser/src/diagnostics.rs @@ -1122,7 +1122,7 @@ pub fn reg_exp_flag_u_and_v(span: Span) -> OxcDiagnostic { #[cold] pub fn setter_with_parameters(span: Span, parameters_count: usize) -> OxcDiagnostic { - OxcDiagnostic::error("A 'set' accessor must have exactly one parameter.") + ts_error("1049", "A 'set' accessor must have exactly one parameter.") .with_label(span) .with_help(if parameters_count == 0 { "Add a parameter here" diff --git a/tasks/coverage/snapshots/parser_babel.snap b/tasks/coverage/snapshots/parser_babel.snap index a48bc346a3c3a..ea70d010bd5c6 100644 --- a/tasks/coverage/snapshots/parser_babel.snap +++ b/tasks/coverage/snapshots/parser_babel.snap @@ -788,14 +788,14 @@ Expect to Parse: tasks/coverage/babel/packages/babel-parser/test/fixtures/typesc ╰──── help: Remove these parameters here - × A 'set' accessor must have exactly one parameter. + × TS(1049): A 'set' accessor must have exactly one parameter. ╭─[babel/packages/babel-parser/test/fixtures/core/object/invalid-setter-no-param/input.js:1:9] 1 │ ({ set x(){} }) · ── ╰──── help: Add a parameter here - × A 'set' accessor must have exactly one parameter. + × TS(1049): A 'set' accessor must have exactly one parameter. ╭─[babel/packages/babel-parser/test/fixtures/core/object/invalid-setter-two-params/input.js:1:12] 1 │ ({ set prop(x, y) {} }) · ────── @@ -4378,14 +4378,14 @@ Expect to Parse: tasks/coverage/babel/packages/babel-parser/test/fixtures/typesc ╰──── help: Remove these parameters here - × A 'set' accessor must have exactly one parameter. + × TS(1049): A 'set' accessor must have exactly one parameter. ╭─[babel/packages/babel-parser/test/fixtures/es2015/uncategorised/346/input.js:1:19] 1 │ class A { set prop() {} } · ── ╰──── help: Add a parameter here - × A 'set' accessor must have exactly one parameter. + × TS(1049): A 'set' accessor must have exactly one parameter. ╭─[babel/packages/babel-parser/test/fixtures/es2015/uncategorised/347/input.js:1:19] 1 │ class A { set prop(x, y) {} } · ────── @@ -10765,7 +10765,7 @@ Expect to Parse: tasks/coverage/babel/packages/babel-parser/test/fixtures/typesc · ─ ╰──── - × A 'set' accessor must have exactly one parameter. + × TS(1049): A 'set' accessor must have exactly one parameter. ╭─[babel/packages/babel-parser/test/fixtures/esprima/invalid-syntax/migrated_0075/input.js:1:9] 1 │ ({ set s() { } }) · ── @@ -12042,7 +12042,7 @@ Expect to Parse: tasks/coverage/babel/packages/babel-parser/test/fixtures/typesc 3 │ } ╰──── - × A 'set' accessor must have exactly one parameter. + × TS(1049): A 'set' accessor must have exactly one parameter. ╭─[babel/packages/babel-parser/test/fixtures/estree/typescript/getter-setter/input.ts:3:9] 2 │ ({ get x() { return 1 } }); 3 │ ({ set x() {} }); @@ -13296,7 +13296,7 @@ Expect to Parse: tasks/coverage/babel/packages/babel-parser/test/fixtures/typesc ╰──── help: Remove these parameters here - × A 'set' accessor must have exactly one parameter. + × TS(1049): A 'set' accessor must have exactly one parameter. ╭─[babel/packages/babel-parser/test/fixtures/typescript/interface/get-set-invalid-parameters/input.ts:3:10] 2 │ get foo(param): string; 3 │ set foo(); @@ -13313,7 +13313,7 @@ Expect to Parse: tasks/coverage/babel/packages/babel-parser/test/fixtures/typesc 3 │ } ╰──── - × A 'set' accessor must have exactly one parameter. + × TS(1049): A 'set' accessor must have exactly one parameter. ╭─[babel/packages/babel-parser/test/fixtures/typescript/interface/get-set-invalid-reset-parameter/input.ts:2:10] 1 │ interface Foo { 2 │ set bar(...v); @@ -13330,7 +13330,7 @@ Expect to Parse: tasks/coverage/babel/packages/babel-parser/test/fixtures/typesc 3 │ } ╰──── - × A 'set' accessor must have exactly one parameter. + × TS(1049): A 'set' accessor must have exactly one parameter. ╭─[babel/packages/babel-parser/test/fixtures/typescript/interface/get-set-invalid-reset-parameter-babel-7/input.ts:2:10] 1 │ interface Foo { 2 │ set bar(...v); @@ -13363,7 +13363,7 @@ Expect to Parse: tasks/coverage/babel/packages/babel-parser/test/fixtures/typesc 4 │ } ╰──── - × A 'set' accessor must have exactly one parameter. + × TS(1049): A 'set' accessor must have exactly one parameter. ╭─[babel/packages/babel-parser/test/fixtures/typescript/interface/get-set-invalid-this-parameters/input.ts:3:10] 2 │ get bar(this: Foo); 3 │ set bar(this: Foo); diff --git a/tasks/coverage/snapshots/parser_typescript.snap b/tasks/coverage/snapshots/parser_typescript.snap index a5f53d24497c8..8e6e1ee2daabe 100644 --- a/tasks/coverage/snapshots/parser_typescript.snap +++ b/tasks/coverage/snapshots/parser_typescript.snap @@ -16041,7 +16041,7 @@ Expect to Parse: tasks/coverage/typescript/tests/cases/conformance/statements/Va 10 │ } ╰──── - × A 'set' accessor must have exactly one parameter. + × TS(1049): A 'set' accessor must have exactly one parameter. ╭─[typescript/tests/cases/conformance/es6/computedProperties/computedPropertyNames49_ES5.ts:9:16] 8 │ }, 9 │ set [1 + 1]() { @@ -16050,7 +16050,7 @@ Expect to Parse: tasks/coverage/typescript/tests/cases/conformance/statements/Va ╰──── help: Add a parameter here - × A 'set' accessor must have exactly one parameter. + × TS(1049): A 'set' accessor must have exactly one parameter. ╭─[typescript/tests/cases/conformance/es6/computedProperties/computedPropertyNames49_ES6.ts:9:16] 8 │ }, 9 │ set [1 + 1]() { @@ -16059,7 +16059,7 @@ Expect to Parse: tasks/coverage/typescript/tests/cases/conformance/statements/Va ╰──── help: Add a parameter here - × A 'set' accessor must have exactly one parameter. + × TS(1049): A 'set' accessor must have exactly one parameter. ╭─[typescript/tests/cases/conformance/es6/computedProperties/computedPropertyNames50_ES5.ts:11:16] 10 │ }, 11 │ set [1 + 1]() { @@ -16068,7 +16068,7 @@ Expect to Parse: tasks/coverage/typescript/tests/cases/conformance/statements/Va ╰──── help: Add a parameter here - × A 'set' accessor must have exactly one parameter. + × TS(1049): A 'set' accessor must have exactly one parameter. ╭─[typescript/tests/cases/conformance/es6/computedProperties/computedPropertyNames50_ES6.ts:11:16] 10 │ }, 11 │ set [1 + 1]() { @@ -21153,14 +21153,14 @@ Expect to Parse: tasks/coverage/typescript/tests/cases/conformance/statements/Va ╰──── help: Remove these parameters here - × A 'set' accessor must have exactly one parameter. + × TS(1049): A 'set' accessor must have exactly one parameter. ╭─[typescript/tests/cases/conformance/parser/ecmascript5/Accessors/parserAccessors8.ts:1:18] 1 │ var v = { set foo() { } } · ── ╰──── help: Add a parameter here - × A 'set' accessor must have exactly one parameter. + × TS(1049): A 'set' accessor must have exactly one parameter. ╭─[typescript/tests/cases/conformance/parser/ecmascript5/Accessors/parserAccessors9.ts:1:18] 1 │ var v = { set foo(a, b) { } } · ────── @@ -22010,7 +22010,7 @@ Expect to Parse: tasks/coverage/typescript/tests/cases/conformance/statements/Va ╰──── help: Try inserting a semicolon here - × A 'set' accessor must have exactly one parameter. + × TS(1049): A 'set' accessor must have exactly one parameter. ╭─[typescript/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/parserErrantSemicolonInClass1.ts:15:17] 14 │ } 15 │ public set d() { @@ -22494,7 +22494,7 @@ Expect to Parse: tasks/coverage/typescript/tests/cases/conformance/statements/Va ╰──── help: Remove these parameters here - × A 'set' accessor must have exactly one parameter. + × TS(1049): A 'set' accessor must have exactly one parameter. ╭─[typescript/tests/cases/conformance/parser/ecmascript5/MemberAccessorDeclarations/parserMemberAccessorDeclaration13.ts:2:11] 1 │ class C { 2 │ set Foo() { } @@ -22503,7 +22503,7 @@ Expect to Parse: tasks/coverage/typescript/tests/cases/conformance/statements/Va ╰──── help: Add a parameter here - × A 'set' accessor must have exactly one parameter. + × TS(1049): A 'set' accessor must have exactly one parameter. ╭─[typescript/tests/cases/conformance/parser/ecmascript5/MemberAccessorDeclarations/parserMemberAccessorDeclaration14.ts:2:11] 1 │ class C { 2 │ set Foo(a: number, b: number) { }