Skip to content

Commit 5c687ae

Browse files
committed
constructor params / move to remove_typescript_nodes because else it's too convoluted
1 parent d433056 commit 5c687ae

File tree

4 files changed

+14
-31
lines changed

4 files changed

+14
-31
lines changed

packages/svelte/src/compiler/phases/1-parse/remove_typescript_nodes.js

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
/** @import { FunctionExpression, FunctionDeclaration } from 'estree' */
33
import { walk } from 'zimmerframe';
44
import * as b from '../../utils/builders.js';
5+
import * as e from '../../errors.js';
56

67
/**
78
* @param {FunctionExpression | FunctionDeclaration} node
@@ -73,10 +74,13 @@ const visitors = {
7374
TSTypeParameterInstantiation() {
7475
return b.empty;
7576
},
76-
TSEnumDeclaration() {
77-
return b.empty;
77+
TSEnumDeclaration(node) {
78+
e.typescript_invalid_feature(node, 'enums');
7879
},
79-
TSParameterProperty(node) {
80+
TSParameterProperty(node, context) {
81+
if (node.accessibility && context.path.at(-2)?.kind === 'constructor') {
82+
e.typescript_invalid_feature(node, 'accessibility modifiers on constructor parameters');
83+
}
8084
return node.parameter;
8185
},
8286
Identifier(node) {
@@ -92,9 +96,14 @@ const visitors = {
9296
FunctionDeclaration: remove_this_param,
9397
TSModuleDeclaration(node, context) {
9498
if (!node.body) return b.empty;
99+
95100
// namespaces can contain non-type nodes
96101
const cleaned = context.visit(node.body.body);
97-
if (cleaned.length === 0) return b.empty;
102+
if (cleaned.length !== 0) {
103+
e.typescript_invalid_feature(node, 'namespaces with non-type nodes');
104+
}
105+
106+
return b.empty;
98107
}
99108
};
100109

packages/svelte/src/compiler/phases/2-analyze/index.js

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,6 @@ import { SvelteWindow } from './visitors/SvelteWindow.js';
6363
import { TaggedTemplateExpression } from './visitors/TaggedTemplateExpression.js';
6464
import { Text } from './visitors/Text.js';
6565
import { TitleElement } from './visitors/TitleElement.js';
66-
import { TSEnumDeclaration } from './visitors/TSEnumDeclaration.js';
67-
import { TSModuleDeclaration } from './visitors/TSModuleDeclaration.js';
6866
import { UpdateExpression } from './visitors/UpdateExpression.js';
6967
import { UseDirective } from './visitors/UseDirective.js';
7068
import { VariableDeclarator } from './visitors/VariableDeclarator.js';
@@ -176,11 +174,7 @@ const visitors = {
176174
TitleElement,
177175
UpdateExpression,
178176
UseDirective,
179-
VariableDeclarator,
180-
181-
// @ts-expect-error
182-
TSEnumDeclaration,
183-
TSModuleDeclaration
177+
VariableDeclarator
184178
};
185179

186180
/**

packages/svelte/src/compiler/phases/2-analyze/visitors/TSEnumDeclaration.js

Lines changed: 0 additions & 10 deletions
This file was deleted.

packages/svelte/src/compiler/phases/2-analyze/visitors/TSModuleDeclaration.js

Lines changed: 0 additions & 10 deletions
This file was deleted.

0 commit comments

Comments
 (0)