From abcbdc0b8d1fcb46edf114637bd676258bab07fd Mon Sep 17 00:00:00 2001 From: Simon Holthausen Date: Tue, 5 Dec 2023 08:57:10 +0100 Subject: [PATCH] the rest --- packages/svelte/src/compiler/errors.js | 7 +++---- packages/svelte/src/compiler/phases/1-parse/index.js | 2 +- packages/svelte/src/compiler/phases/1-parse/read/style.js | 2 ++ .../compiler-errors/samples/attribute-empty/_config.js | 2 +- .../compiler-errors/samples/comment-unclosed/_config.js | 4 ++-- .../samples/css-global-without-selector/_config.js | 6 +++--- .../svelte/tests/compiler-errors/samples/css/_config.js | 4 ++-- .../compiler-errors/samples/multiple-styles/_config.js | 2 +- .../compiler-errors/samples/script-unclosed-eof/_config.js | 4 ++-- .../samples/script-unclosed-eof/main.svelte | 4 ++-- .../compiler-errors/samples/script-unclosed/_config.js | 4 ++-- .../compiler-errors/samples/script-unclosed/main.svelte | 4 ++-- .../compiler-errors/samples/style-unclosed-eof/_config.js | 4 ++-- .../compiler-errors/samples/style-unclosed-eof/main.svelte | 4 ++-- .../compiler-errors/samples/style-unclosed/_config.js | 6 +++--- .../compiler-errors/samples/style-unclosed/main.svelte | 4 ++-- 16 files changed, 32 insertions(+), 31 deletions(-) diff --git a/packages/svelte/src/compiler/errors.js b/packages/svelte/src/compiler/errors.js index 6f03846d42..748252e095 100644 --- a/packages/svelte/src/compiler/errors.js +++ b/packages/svelte/src/compiler/errors.js @@ -26,7 +26,9 @@ const parse = { 'unclosed-element': (name) => `<${name}> was left open`, 'unclosed-block': () => `Block was left open`, 'unexpected-block-close': () => `Unexpected block closing tag`, - 'unexpected-eof': () => `Unexpected end of input`, + /** @param {string} [expected] */ + 'unexpected-eof': (expected) => + `Unexpected end of input` + (expected ? ` (expected ${expected})` : ''), /** @param {string} message */ 'js-parse-error': (message) => message, /** @param {string} token */ @@ -96,12 +98,9 @@ const css = { 'invalid-css-empty-declaration': () => `Declaration cannot be empty`, 'invalid-css-global-placement': () => `:global(...) can be at the start or end of a selector sequence, but not in the middle`, - 'invalid-css-global-selector': () => `:global(...) must contain exactly one selector`, - 'invalid-css-global-selector-list': () => `:global(...) cannot be used to modify a selector, or be modified by another selector`, - 'invalid-css-selector': () => `Invalid selector`, 'invalid-css-identifier': () => 'Expected a valid CSS identifier' }; diff --git a/packages/svelte/src/compiler/phases/1-parse/index.js b/packages/svelte/src/compiler/phases/1-parse/index.js index d74c776efc..6b7642c251 100644 --- a/packages/svelte/src/compiler/phases/1-parse/index.js +++ b/packages/svelte/src/compiler/phases/1-parse/index.js @@ -147,7 +147,7 @@ export class Parser { if (required) { if (this.index === this.template.length) { - error(this.index, 'unexpected-eof'); + error(this.index, 'unexpected-eof', str); } else { error(this.index, 'expected-token', str); } diff --git a/packages/svelte/src/compiler/phases/1-parse/read/style.js b/packages/svelte/src/compiler/phases/1-parse/read/style.js index 0cc56ff8ea..db5dc12d2f 100644 --- a/packages/svelte/src/compiler/phases/1-parse/read/style.js +++ b/packages/svelte/src/compiler/phases/1-parse/read/style.js @@ -235,6 +235,8 @@ function read_selector(parser, inside_pseudo_class = false) { if (parser.eat('(')) { args = read_selector_list(parser, true); parser.eat(')', true); + } else if (name === 'global') { + error(parser.index, 'invalid-css-global-selector'); } children.push({ diff --git a/packages/svelte/tests/compiler-errors/samples/attribute-empty/_config.js b/packages/svelte/tests/compiler-errors/samples/attribute-empty/_config.js index 5823dca910..248fc1107e 100644 --- a/packages/svelte/tests/compiler-errors/samples/attribute-empty/_config.js +++ b/packages/svelte/tests/compiler-errors/samples/attribute-empty/_config.js @@ -3,7 +3,7 @@ import { test } from '../../test'; export default test({ error: { code: 'missing-attribute-value', - message: 'Expected value for the attribute', + message: 'Expected attribute value', position: [12, 12] } }); diff --git a/packages/svelte/tests/compiler-errors/samples/comment-unclosed/_config.js b/packages/svelte/tests/compiler-errors/samples/comment-unclosed/_config.js index 166a9df9b7..7c00375ad6 100644 --- a/packages/svelte/tests/compiler-errors/samples/comment-unclosed/_config.js +++ b/packages/svelte/tests/compiler-errors/samples/comment-unclosed/_config.js @@ -2,8 +2,8 @@ import { test } from '../../test'; export default test({ error: { - code: 'unclosed-comment', - message: 'comment was left open, expected -->', + code: 'unexpected-eof', + message: 'Unexpected end of input (expected -->)', position: [24, 24] } }); diff --git a/packages/svelte/tests/compiler-errors/samples/css-global-without-selector/_config.js b/packages/svelte/tests/compiler-errors/samples/css-global-without-selector/_config.js index fc5349f233..549ad3ebe2 100644 --- a/packages/svelte/tests/compiler-errors/samples/css-global-without-selector/_config.js +++ b/packages/svelte/tests/compiler-errors/samples/css-global-without-selector/_config.js @@ -2,8 +2,8 @@ import { test } from '../../test'; export default test({ error: { - code: 'invalid-css-identifier', - message: ':global() must contain a selector', - position: [9, 9] + code: 'invalid-css-global-selector', + message: ':global(...) must contain exactly one selector', + position: [16, 16] } }); diff --git a/packages/svelte/tests/compiler-errors/samples/css/_config.js b/packages/svelte/tests/compiler-errors/samples/css/_config.js index 9e7cd16601..9705cde6b5 100644 --- a/packages/svelte/tests/compiler-errors/samples/css/_config.js +++ b/packages/svelte/tests/compiler-errors/samples/css/_config.js @@ -3,7 +3,7 @@ import { test } from '../../test'; export default test({ error: { code: 'invalid-css-identifier', - message: '"{" is expected', - position: [24, 24] + message: 'Expected a valid CSS identifier', + position: [25, 25] } }); diff --git a/packages/svelte/tests/compiler-errors/samples/multiple-styles/_config.js b/packages/svelte/tests/compiler-errors/samples/multiple-styles/_config.js index 66cdcd9553..50cf2583af 100644 --- a/packages/svelte/tests/compiler-errors/samples/multiple-styles/_config.js +++ b/packages/svelte/tests/compiler-errors/samples/multiple-styles/_config.js @@ -3,7 +3,7 @@ import { test } from '../../test'; export default test({ error: { code: 'duplicate-style-element', - message: 'You can only have one top-level