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 b5ea70d00c..9418ec9ecc 100644 --- a/packages/svelte/src/compiler/phases/1-parse/read/style.js +++ b/packages/svelte/src/compiler/phases/1-parse/read/style.js @@ -206,13 +206,15 @@ function read_selector(parser, inside_pseudo_class = false) { if (combinator) { if (relative_selector.selectors.length === 0) { - error(start, 'TODO', 'expected a selector'); + if (!inside_pseudo_class) { + error(start, 'invalid-css-selector'); + } + } else { + // flush previous relative selector... + relative_selector.end = start; + children.push(relative_selector); } - // flush previous relative selector... - relative_selector.end = start; - children.push(relative_selector); - // ...and start a new one relative_selector = { type: 'RelativeSelector', @@ -358,7 +360,7 @@ function read_selector(parser, inside_pseudo_class = false) { parser.index = index; if (relative_selector.selectors.length === 0) { - error(index, 'TODO', 'expected a selector'); + error(index, 'invalid-css-selector'); } // flush diff --git a/packages/svelte/tests/validator/samples/css-invalid-combinator-selector-1/errors.json b/packages/svelte/tests/validator/samples/css-invalid-combinator-selector-1/errors.json index fc90941b1c..d49bf7437a 100644 --- a/packages/svelte/tests/validator/samples/css-invalid-combinator-selector-1/errors.json +++ b/packages/svelte/tests/validator/samples/css-invalid-combinator-selector-1/errors.json @@ -2,7 +2,13 @@ { "code": "invalid-css-selector", "message": "Invalid selector", - "start": { "line": 10, "column": 1 }, - "end": { "line": 10, "column": 7 } + "start": { + "line": 10, + "column": 1 + }, + "end": { + "line": 10, + "column": 1 + } } ] diff --git a/packages/svelte/tests/validator/samples/css-invalid-combinator-selector-2/errors.json b/packages/svelte/tests/validator/samples/css-invalid-combinator-selector-2/errors.json index aae67dc75a..2fdf3e96d1 100644 --- a/packages/svelte/tests/validator/samples/css-invalid-combinator-selector-2/errors.json +++ b/packages/svelte/tests/validator/samples/css-invalid-combinator-selector-2/errors.json @@ -2,7 +2,13 @@ { "code": "invalid-css-selector", "message": "Invalid selector", - "start": { "line": 8, "column": 1 }, - "end": { "line": 8, "column": 4 } + "start": { + "line": 8, + "column": 1 + }, + "end": { + "line": 8, + "column": 1 + } } ] diff --git a/packages/svelte/tests/validator/samples/css-invalid-combinator-selector-3/errors.json b/packages/svelte/tests/validator/samples/css-invalid-combinator-selector-3/errors.json index 9f3d06660c..b355260623 100644 --- a/packages/svelte/tests/validator/samples/css-invalid-combinator-selector-3/errors.json +++ b/packages/svelte/tests/validator/samples/css-invalid-combinator-selector-3/errors.json @@ -2,7 +2,13 @@ { "code": "invalid-css-selector", "message": "Invalid selector", - "start": { "line": 5, "column": 2 }, - "end": { "line": 5, "column": 8 } + "start": { + "line": 5, + "column": 2 + }, + "end": { + "line": 5, + "column": 2 + } } ]