diff --git a/packages/svelte/src/compiler/phases/2-analyze/validation.js b/packages/svelte/src/compiler/phases/2-analyze/validation.js index 829638fbb7..74c6fcdeec 100644 --- a/packages/svelte/src/compiler/phases/2-analyze/validation.js +++ b/packages/svelte/src/compiler/phases/2-analyze/validation.js @@ -649,7 +649,19 @@ export const validation_runes_js = { * @param {boolean} is_binding */ function validate_no_const_assignment(node, argument, scope, is_binding) { - if (argument.type === 'Identifier') { + if (argument.type === 'ArrayPattern') { + for (const element of argument.elements) { + if (element) { + validate_no_const_assignment(node, element, scope, is_binding); + } + } + } else if (argument.type === 'ObjectPattern') { + for (const element of argument.properties) { + if (element.type === 'Property') { + validate_no_const_assignment(node, element.value, scope, is_binding); + } + } + } else if (argument.type === 'Identifier') { const binding = scope.get(argument.name); if (binding?.declaration_kind === 'const' && binding.kind !== 'each') { error( diff --git a/packages/svelte/tests/validator/samples/assignment-to-const-2/_config.js b/packages/svelte/tests/validator/samples/assignment-to-const-2/_config.js deleted file mode 100644 index 64fdc120d6..0000000000 --- a/packages/svelte/tests/validator/samples/assignment-to-const-2/_config.js +++ /dev/null @@ -1,3 +0,0 @@ -import { test } from '../../test'; - -export default test({ skip: true }); diff --git a/packages/svelte/tests/validator/samples/assignment-to-const-2/errors.json b/packages/svelte/tests/validator/samples/assignment-to-const-2/errors.json index 7bbd36b9a1..1b74f51563 100644 --- a/packages/svelte/tests/validator/samples/assignment-to-const-2/errors.json +++ b/packages/svelte/tests/validator/samples/assignment-to-const-2/errors.json @@ -1,7 +1,7 @@ [ { - "code": "assignment-to-const", - "message": "You are assigning to a const", + "code": "invalid-const-assignment", + "message": "Invalid assignment to const variable", "start": { "line": 13, "column": 24 diff --git a/packages/svelte/tests/validator/samples/assignment-to-const-3/_config.js b/packages/svelte/tests/validator/samples/assignment-to-const-3/_config.js deleted file mode 100644 index 64fdc120d6..0000000000 --- a/packages/svelte/tests/validator/samples/assignment-to-const-3/_config.js +++ /dev/null @@ -1,3 +0,0 @@ -import { test } from '../../test'; - -export default test({ skip: true }); diff --git a/packages/svelte/tests/validator/samples/assignment-to-const-3/errors.json b/packages/svelte/tests/validator/samples/assignment-to-const-3/errors.json index 1201c10a83..b00dd32495 100644 --- a/packages/svelte/tests/validator/samples/assignment-to-const-3/errors.json +++ b/packages/svelte/tests/validator/samples/assignment-to-const-3/errors.json @@ -1,7 +1,7 @@ [ { - "code": "assignment-to-const", - "message": "You are assigning to a const", + "code": "invalid-const-assignment", + "message": "Invalid assignment to const variable", "start": { "line": 14, "column": 3 diff --git a/packages/svelte/tests/validator/samples/assignment-to-const-4/_config.js b/packages/svelte/tests/validator/samples/assignment-to-const-4/_config.js deleted file mode 100644 index 64fdc120d6..0000000000 --- a/packages/svelte/tests/validator/samples/assignment-to-const-4/_config.js +++ /dev/null @@ -1,3 +0,0 @@ -import { test } from '../../test'; - -export default test({ skip: true }); diff --git a/packages/svelte/tests/validator/samples/assignment-to-const-4/errors.json b/packages/svelte/tests/validator/samples/assignment-to-const-4/errors.json index 39474b2f70..1fcfaf2406 100644 --- a/packages/svelte/tests/validator/samples/assignment-to-const-4/errors.json +++ b/packages/svelte/tests/validator/samples/assignment-to-const-4/errors.json @@ -1,7 +1,7 @@ [ { - "code": "assignment-to-const", - "message": "You are assigning to a const", + "code": "invalid-const-assignment", + "message": "Invalid assignment to const variable", "start": { "line": 17, "column": 2 diff --git a/packages/svelte/tests/validator/samples/assignment-to-const-5/_config.js b/packages/svelte/tests/validator/samples/assignment-to-const-5/_config.js deleted file mode 100644 index 64fdc120d6..0000000000 --- a/packages/svelte/tests/validator/samples/assignment-to-const-5/_config.js +++ /dev/null @@ -1,3 +0,0 @@ -import { test } from '../../test'; - -export default test({ skip: true }); diff --git a/packages/svelte/tests/validator/samples/assignment-to-const-5/errors.json b/packages/svelte/tests/validator/samples/assignment-to-const-5/errors.json index 715f33b638..9bff01645a 100644 --- a/packages/svelte/tests/validator/samples/assignment-to-const-5/errors.json +++ b/packages/svelte/tests/validator/samples/assignment-to-const-5/errors.json @@ -1,7 +1,7 @@ [ { - "code": "assignment-to-const", - "message": "You are assigning to a const", + "code": "invalid-const-assignment", + "message": "Invalid assignment to const variable", "start": { "line": 3, "column": 1 diff --git a/packages/svelte/tests/validator/samples/assignment-to-const-7/_config.js b/packages/svelte/tests/validator/samples/assignment-to-const-7/_config.js deleted file mode 100644 index 64fdc120d6..0000000000 --- a/packages/svelte/tests/validator/samples/assignment-to-const-7/_config.js +++ /dev/null @@ -1,3 +0,0 @@ -import { test } from '../../test'; - -export default test({ skip: true }); diff --git a/packages/svelte/tests/validator/samples/assignment-to-const-7/errors.json b/packages/svelte/tests/validator/samples/assignment-to-const-7/errors.json index 5ac8ad8b68..02e5503b16 100644 --- a/packages/svelte/tests/validator/samples/assignment-to-const-7/errors.json +++ b/packages/svelte/tests/validator/samples/assignment-to-const-7/errors.json @@ -1,7 +1,7 @@ [ { - "code": "assignment-to-const", - "message": "You are assigning to a const", + "code": "invalid-const-assignment", + "message": "Invalid assignment to const variable", "start": { "line": 3, "column": 1 diff --git a/packages/svelte/tests/validator/samples/assignment-to-const/_config.js b/packages/svelte/tests/validator/samples/assignment-to-const/_config.js deleted file mode 100644 index 64fdc120d6..0000000000 --- a/packages/svelte/tests/validator/samples/assignment-to-const/_config.js +++ /dev/null @@ -1,3 +0,0 @@ -import { test } from '../../test'; - -export default test({ skip: true }); diff --git a/packages/svelte/tests/validator/samples/assignment-to-const/errors.json b/packages/svelte/tests/validator/samples/assignment-to-const/errors.json index b822452b92..88d6b728b9 100644 --- a/packages/svelte/tests/validator/samples/assignment-to-const/errors.json +++ b/packages/svelte/tests/validator/samples/assignment-to-const/errors.json @@ -1,7 +1,7 @@ [ { - "code": "assignment-to-const", - "message": "You are assigning to a const", + "code": "invalid-const-assignment", + "message": "Invalid assignment to const variable", "start": { "line": 16, "column": 2