Skip to content

Commit 67422c4

Browse files
authored
fix: allow whitespace before an after snippet parameters (#12159)
fixes #12156 Also remove obsolete code
1 parent 15246dc commit 67422c4

File tree

4 files changed

+12
-12
lines changed

4 files changed

+12
-12
lines changed

packages/svelte/src/compiler/phases/1-parse/read/context.js

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,16 @@ import { locator } from '../../../state.js';
1414

1515
/**
1616
* @param {import('../index.js').Parser} parser
17-
* @param {boolean} [optional_allowed]
1817
* @returns {import('estree').Pattern}
1918
*/
20-
export default function read_pattern(parser, optional_allowed = false) {
19+
export default function read_pattern(parser) {
2120
const start = parser.index;
2221
let i = parser.index;
2322

2423
const code = full_char_code_at(parser.template, i);
2524
if (isIdentifierStart(code, true)) {
2625
const name = /** @type {string} */ (parser.read_identifier());
27-
const annotation = read_type_annotation(parser, optional_allowed);
26+
const annotation = read_type_annotation(parser);
2827

2928
return {
3029
type: 'Identifier',
@@ -84,7 +83,7 @@ export default function read_pattern(parser, optional_allowed = false) {
8483
parse_expression_at(`${space_with_newline}(${pattern_string} = 1)`, parser.ts, start - 1)
8584
).left;
8685

87-
expression.typeAnnotation = read_type_annotation(parser, optional_allowed);
86+
expression.typeAnnotation = read_type_annotation(parser);
8887
if (expression.typeAnnotation) {
8988
expression.end = expression.typeAnnotation.end;
9089
}
@@ -97,19 +96,12 @@ export default function read_pattern(parser, optional_allowed = false) {
9796

9897
/**
9998
* @param {import('../index.js').Parser} parser
100-
* @param {boolean} [optional_allowed]
10199
* @returns {any}
102100
*/
103-
function read_type_annotation(parser, optional_allowed = false) {
101+
function read_type_annotation(parser) {
104102
const start = parser.index;
105103
parser.allow_whitespace();
106104

107-
if (optional_allowed && parser.eat('?')) {
108-
// Acorn-TS puts the optional info as a property on the surrounding node.
109-
// We spare the work here because it doesn't matter for us anywhere else.
110-
parser.allow_whitespace();
111-
}
112-
113105
if (!parser.eat(':')) {
114106
parser.index = start;
115107
return undefined;

packages/svelte/src/compiler/phases/1-parse/state/tag.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,8 @@ function open(parser) {
269269
e.expected_identifier(parser.index);
270270
}
271271

272+
parser.allow_whitespace();
273+
272274
const params_start = parser.index;
273275

274276
parser.eat('(', true);
@@ -289,6 +291,7 @@ function open(parser) {
289291
parse_expression_at(prelude + `${params} => {}`, parser.ts, params_start)
290292
);
291293

294+
parser.allow_whitespace();
292295
parser.eat('}', true);
293296

294297
/** @type {ReturnType<typeof parser.append<import('#compiler').SnippetBlock>>} */
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
[]
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<!-- prettier-ignore -->
2+
{#snippet ok () }
3+
asd
4+
{/snippet}

0 commit comments

Comments
 (0)