Skip to content

Commit 4c15c9b

Browse files
authored
storing offsets in a Map instead of passing them down through an array (#1061)
1 parent 7e34f9e commit 4c15c9b

File tree

228 files changed

+873
-2020
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

228 files changed

+873
-2020
lines changed

jest.config.js

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,9 @@ const TEST_STANDALONE = Boolean(process.env.TEST_STANDALONE);
22
const testMatch = ['<rootDir>/tests/format/**/format.test.js'];
33

44
if (TEST_STANDALONE) {
5-
testMatch.push(
6-
'<rootDir>/tests/integration/**/*.test.js',
7-
'<rootDir>/tests/unit/prettier-version/**/*.test.js'
8-
);
5+
testMatch.push('<rootDir>/tests/integration/**/*.test.js');
96
} else {
107
testMatch.push('<rootDir>/tests/unit/**/*.test.js');
11-
testMatch.push('<rootDir>/tests/unit/**/*.test.ts');
128
}
139

1410
export default {

src/slang-nodes/AbicoderPragma.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,10 @@ export class AbicoderPragma implements SlangNode {
1515

1616
version: Identifier;
1717

18-
constructor(ast: ast.AbicoderPragma, offset: number) {
19-
const metadata = getNodeMetadata(ast, offset);
20-
const { offsets } = metadata;
18+
constructor(ast: ast.AbicoderPragma) {
19+
const metadata = getNodeMetadata(ast);
2120

22-
this.version = new Identifier(ast.version, offsets[0]);
21+
this.version = new Identifier(ast.version);
2322

2423
this.comments = metadata.comments;
2524
this.loc = metadata.loc;

src/slang-nodes/AdditiveExpression.ts

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,17 +24,12 @@ export class AdditiveExpression implements SlangNode {
2424

2525
rightOperand: Expression;
2626

27-
constructor(
28-
ast: ast.AdditiveExpression,
29-
offset: number,
30-
options: ParserOptions<AstNode>
31-
) {
32-
let metadata = getNodeMetadata(ast, offset);
33-
const { offsets } = metadata;
27+
constructor(ast: ast.AdditiveExpression, options: ParserOptions<AstNode>) {
28+
let metadata = getNodeMetadata(ast);
3429

35-
this.leftOperand = new Expression(ast.leftOperand, offsets[0], options);
30+
this.leftOperand = new Expression(ast.leftOperand, options);
3631
this.operator = ast.operator.unparse();
37-
this.rightOperand = new Expression(ast.rightOperand, offsets[1], options);
32+
this.rightOperand = new Expression(ast.rightOperand, options);
3833

3934
metadata = updateMetadata(metadata, [this.leftOperand, this.rightOperand]);
4035

src/slang-nodes/AddressType.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ export class AddressType implements SlangNode {
1515

1616
payableKeyword?: string;
1717

18-
constructor(ast: ast.AddressType, offset: number) {
19-
const metadata = getNodeMetadata(ast, offset);
18+
constructor(ast: ast.AddressType) {
19+
const metadata = getNodeMetadata(ast);
2020

2121
this.payableKeyword = ast.payableKeyword?.unparse();
2222

src/slang-nodes/AndExpression.ts

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,12 @@ export class AndExpression implements SlangNode {
2121

2222
rightOperand: Expression;
2323

24-
constructor(
25-
ast: ast.AndExpression,
26-
offset: number,
27-
options: ParserOptions<AstNode>
28-
) {
29-
let metadata = getNodeMetadata(ast, offset);
30-
const { offsets } = metadata;
24+
constructor(ast: ast.AndExpression, options: ParserOptions<AstNode>) {
25+
let metadata = getNodeMetadata(ast);
3126

32-
this.leftOperand = new Expression(ast.leftOperand, offsets[0], options);
27+
this.leftOperand = new Expression(ast.leftOperand, options);
3328
this.operator = ast.operator.unparse();
34-
this.rightOperand = new Expression(ast.rightOperand, offsets[1], options);
29+
this.rightOperand = new Expression(ast.rightOperand, options);
3530

3631
metadata = updateMetadata(metadata, [this.leftOperand, this.rightOperand]);
3732

src/slang-nodes/ArgumentsDeclaration.ts

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,26 +17,19 @@ export class ArgumentsDeclaration implements SlangNode {
1717

1818
variant: PositionalArgumentsDeclaration | NamedArgumentsDeclaration;
1919

20-
constructor(
21-
ast: ast.ArgumentsDeclaration,
22-
offset: number,
23-
options: ParserOptions<AstNode>
24-
) {
25-
let metadata = getNodeMetadata(ast, offset);
26-
const { offsets } = metadata;
20+
constructor(ast: ast.ArgumentsDeclaration, options: ParserOptions<AstNode>) {
21+
let metadata = getNodeMetadata(ast);
2722

2823
switch (ast.variant.cst.kind) {
2924
case NonterminalKind.PositionalArgumentsDeclaration:
3025
this.variant = new PositionalArgumentsDeclaration(
3126
ast.variant as ast.PositionalArgumentsDeclaration,
32-
offsets[0],
3327
options
3428
);
3529
break;
3630
case NonterminalKind.NamedArgumentsDeclaration:
3731
this.variant = new NamedArgumentsDeclaration(
3832
ast.variant as ast.NamedArgumentsDeclaration,
39-
offsets[0],
4033
options
4134
);
4235
break;

src/slang-nodes/ArrayExpression.ts

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,10 @@ export class ArrayExpression implements SlangNode {
1919

2020
items: ArrayValues;
2121

22-
constructor(
23-
ast: ast.ArrayExpression,
24-
offset: number,
25-
options: ParserOptions<AstNode>
26-
) {
27-
let metadata = getNodeMetadata(ast, offset);
28-
const { offsets } = metadata;
29-
30-
this.items = new ArrayValues(ast.items, offsets[0], options);
22+
constructor(ast: ast.ArrayExpression, options: ParserOptions<AstNode>) {
23+
let metadata = getNodeMetadata(ast);
24+
25+
this.items = new ArrayValues(ast.items, options);
3126

3227
metadata = updateMetadata(metadata, [this.items]);
3328

src/slang-nodes/ArrayTypeName.ts

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,12 @@ export class ArrayTypeName implements SlangNode {
1919

2020
index?: Expression;
2121

22-
constructor(
23-
ast: ast.ArrayTypeName,
24-
offset: number,
25-
options: ParserOptions<AstNode>
26-
) {
27-
let metadata = getNodeMetadata(ast, offset);
28-
const { offsets } = metadata;
29-
30-
this.operand = new TypeName(ast.operand, offsets[0], options);
22+
constructor(ast: ast.ArrayTypeName, options: ParserOptions<AstNode>) {
23+
let metadata = getNodeMetadata(ast);
24+
25+
this.operand = new TypeName(ast.operand, options);
3126
if (ast.index) {
32-
this.index = new Expression(ast.index, offsets[1], options);
27+
this.index = new Expression(ast.index, options);
3328
}
3429

3530
metadata = updateMetadata(metadata, [this.operand, this.index]);

src/slang-nodes/ArrayValues.ts

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,10 @@ export class ArrayValues implements SlangNode {
1919

2020
separators: string[];
2121

22-
constructor(
23-
ast: ast.ArrayValues,
24-
offset: number,
25-
options: ParserOptions<AstNode>
26-
) {
27-
let metadata = getNodeMetadata(ast, offset, true);
28-
const { offsets } = metadata;
29-
30-
this.items = ast.items.map(
31-
(item, index) => new Expression(item, offsets[index], options)
32-
);
22+
constructor(ast: ast.ArrayValues, options: ParserOptions<AstNode>) {
23+
let metadata = getNodeMetadata(ast, true);
24+
25+
this.items = ast.items.map((item) => new Expression(item, options));
3326
this.separators = ast.separators.map((separator) => separator.unparse());
3427

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

src/slang-nodes/AssemblyFlags.ts

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,10 @@ export class AssemblyFlags implements SlangNode {
1919

2020
separators: string[];
2121

22-
constructor(
23-
ast: ast.AssemblyFlags,
24-
offset: number,
25-
options: ParserOptions<AstNode>
26-
) {
27-
let metadata = getNodeMetadata(ast, offset, true);
28-
const { offsets } = metadata;
29-
30-
this.items = ast.items.map(
31-
(item, index) => new StringLiteral(item, offsets[index], options)
32-
);
22+
constructor(ast: ast.AssemblyFlags, options: ParserOptions<AstNode>) {
23+
let metadata = getNodeMetadata(ast, true);
24+
25+
this.items = ast.items.map((item) => new StringLiteral(item, options));
3326
this.separators = ast.separators.map((separator) => separator.unparse());
3427

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

0 commit comments

Comments
 (0)