Skip to content

Commit 6096873

Browse files
authored
dropping all the unnecessary storing of separators, according to the documentation the separator will always be the same for each node. (#1206)
1 parent a782b28 commit 6096873

25 files changed

Lines changed: 19 additions & 96 deletions

src/slang-nodes/ArrayValues.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,10 @@ export class ArrayValues implements SlangNode {
1717

1818
items: Expression[];
1919

20-
separators: string[];
21-
2220
constructor(ast: ast.ArrayValues, options: ParserOptions<AstNode>) {
2321
let metadata = getNodeMetadata(ast, true);
2422

2523
this.items = ast.items.map((item) => new Expression(item, options));
26-
this.separators = ast.separators.map((separator) => separator.unparse());
2724

2825
metadata = updateMetadata(metadata, [this.items]);
2926

src/slang-nodes/AssemblyFlags.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,10 @@ export class AssemblyFlags implements SlangNode {
1717

1818
items: StringLiteral[];
1919

20-
separators: string[];
21-
2220
constructor(ast: ast.AssemblyFlags, options: ParserOptions<AstNode>) {
2321
let metadata = getNodeMetadata(ast, true);
2422

2523
this.items = ast.items.map((item) => new StringLiteral(item, options));
26-
this.separators = ast.separators.map((separator) => separator.unparse());
2724

2825
metadata = updateMetadata(metadata, [this.items]);
2926

src/slang-nodes/CallOptions.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,10 @@ export class CallOptions implements SlangNode {
2020

2121
items: NamedArgument[];
2222

23-
separators: string[];
24-
2523
constructor(ast: ast.CallOptions, options: ParserOptions<AstNode>) {
2624
let metadata = getNodeMetadata(ast, true);
2725

2826
this.items = ast.items.map((item) => new NamedArgument(item, options));
29-
this.separators = ast.separators.map((separator) => separator.unparse());
3027

3128
metadata = updateMetadata(metadata, [this.items]);
3229

src/slang-nodes/EnumMembers.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,10 @@ export class EnumMembers implements SlangNode {
1919

2020
items: Identifier[];
2121

22-
separators: string[];
23-
2422
constructor(ast: ast.EnumMembers) {
2523
const metadata = getNodeMetadata(ast, true);
2624

2725
this.items = ast.items.map((item) => new Identifier(item));
28-
this.separators = ast.separators.map((separator) => separator.unparse());
2926

3027
this.comments = metadata.comments;
3128
this.loc = metadata.loc;

src/slang-nodes/ErrorParameters.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,10 @@ export class ErrorParameters implements SlangNode {
1717

1818
items: ErrorParameter[];
1919

20-
separators: string[];
21-
2220
constructor(ast: ast.ErrorParameters, options: ParserOptions<AstNode>) {
2321
let metadata = getNodeMetadata(ast, true);
2422

2523
this.items = ast.items.map((item) => new ErrorParameter(item, options));
26-
this.separators = ast.separators.map((separator) => separator.unparse());
2724

2825
metadata = updateMetadata(metadata, [this.items]);
2926

src/slang-nodes/EventParameters.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,10 @@ export class EventParameters implements SlangNode {
1717

1818
items: EventParameter[];
1919

20-
separators: string[];
21-
2220
constructor(ast: ast.EventParameters, options: ParserOptions<AstNode>) {
2321
let metadata = getNodeMetadata(ast, true);
2422

2523
this.items = ast.items.map((item) => new EventParameter(item, options));
26-
this.separators = ast.separators.map((separator) => separator.unparse());
2724

2825
metadata = updateMetadata(metadata, [this.items]);
2926

src/slang-nodes/IdentifierPath.ts

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
import { NonterminalKind } from '@nomicfoundation/slang/cst';
2+
import { doc } from 'prettier';
23
import { getNodeMetadata } from '../slang-utils/metadata.js';
34
import { Identifier } from './Identifier.js';
45

56
import type * as ast from '@nomicfoundation/slang/ast';
67
import type { AstPath, Doc } from 'prettier';
78
import type { PrintFunction, SlangNode } from '../types.d.ts';
89

10+
const { join } = doc.builders;
11+
912
export class IdentifierPath implements SlangNode {
1013
readonly kind = NonterminalKind.IdentifierPath;
1114

@@ -15,23 +18,16 @@ export class IdentifierPath implements SlangNode {
1518

1619
items: Identifier[];
1720

18-
separators: string[];
19-
2021
constructor(ast: ast.IdentifierPath) {
2122
const metadata = getNodeMetadata(ast);
2223

2324
this.items = ast.items.map((item) => new Identifier(item));
24-
this.separators = ast.separators.map((separator) => separator.unparse());
2525

2626
this.comments = metadata.comments;
2727
this.loc = metadata.loc;
2828
}
2929

3030
print(path: AstPath<IdentifierPath>, print: PrintFunction): Doc {
31-
return path
32-
.map(print, 'items')
33-
.map((item, index) =>
34-
index === 0 ? item : [this.separators[index - 1], item]
35-
);
31+
return join('.', path.map(print, 'items'));
3632
}
3733
}

src/slang-nodes/ImportDeconstructionSymbols.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,10 @@ export class ImportDeconstructionSymbols implements SlangNode {
2121

2222
items: ImportDeconstructionSymbol[];
2323

24-
separators: string[];
25-
2624
constructor(ast: ast.ImportDeconstructionSymbols) {
2725
let metadata = getNodeMetadata(ast, true);
2826

2927
this.items = ast.items.map((item) => new ImportDeconstructionSymbol(item));
30-
this.separators = ast.separators.map((separator) => separator.unparse());
3128

3229
metadata = updateMetadata(metadata, [this.items]);
3330

src/slang-nodes/InheritanceTypes.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,10 @@ export class InheritanceTypes implements SlangNode {
2020

2121
items: InheritanceType[];
2222

23-
separators: string[];
24-
2523
constructor(ast: ast.InheritanceTypes, options: ParserOptions<AstNode>) {
2624
let metadata = getNodeMetadata(ast, true);
2725

2826
this.items = ast.items.map((item) => new InheritanceType(item, options));
29-
this.separators = ast.separators.map((separator) => separator.unparse());
3027

3128
metadata = updateMetadata(metadata, [this.items]);
3229

src/slang-nodes/ModifierDefinition.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,7 @@ export class ModifierDefinition implements SlangNode {
6868
kind: NonterminalKind.Parameters,
6969
loc: { ...parametersLoc },
7070
comments: [],
71-
items: [],
72-
separators: []
71+
items: []
7372
}
7473
)
7574
}

0 commit comments

Comments
 (0)