Skip to content

Commit 349bd4e

Browse files
authored
using printVariant also for collections of variants (#1262)
1 parent e257a24 commit 349bd4e

15 files changed

Lines changed: 31 additions & 15 deletions

src/slang-nodes/ArrayValues.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { NonterminalKind } from '@nomicfoundation/slang/cst';
22
import { printSeparatedList } from '../slang-printers/print-separated-list.js';
3+
import { printVariant } from '../slang-printers/print-variant.js';
34
import { SlangNode } from './SlangNode.js';
45
import { Expression } from './Expression.js';
56

@@ -20,6 +21,6 @@ export class ArrayValues extends SlangNode {
2021
}
2122

2223
print(path: AstPath<ArrayValues>, print: PrintFunction): Doc {
23-
return printSeparatedList(path.map(print, 'items'));
24+
return printSeparatedList(path.map(printVariant(print), 'items'));
2425
}
2526
}

src/slang-nodes/ConstructorAttributes.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { NonterminalKind } from '@nomicfoundation/slang/cst';
22
import { doc } from 'prettier';
33
import { sortFunctionAttributes } from '../slang-utils/sort-function-attributes.js';
4+
import { printVariant } from '../slang-printers/print-variant.js';
45
import { SlangNode } from './SlangNode.js';
56
import { ConstructorAttribute } from './ConstructorAttribute.js';
67

@@ -27,6 +28,6 @@ export class ConstructorAttributes extends SlangNode {
2728
}
2829

2930
print(path: AstPath<ConstructorAttributes>, print: PrintFunction): Doc {
30-
return path.map(print, 'items').map((item) => [line, item]);
31+
return path.map(printVariant(print), 'items').map((item) => [line, item]);
3132
}
3233
}

src/slang-nodes/ContractSpecifiers.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { NonterminalKind } from '@nomicfoundation/slang/cst';
22
import { doc } from 'prettier';
33
import { sortContractSpecifiers } from '../slang-utils/sort-contract-specifiers.js';
44
import { printSeparatedList } from '../slang-printers/print-separated-list.js';
5+
import { printVariant } from '../slang-printers/print-variant.js';
56
import { SlangNode } from './SlangNode.js';
67
import { ContractSpecifier } from './ContractSpecifier.js';
78

@@ -26,7 +27,7 @@ export class ContractSpecifiers extends SlangNode {
2627
}
2728

2829
print(path: AstPath<ContractSpecifiers>, print: PrintFunction): Doc {
29-
const [specifier1, specifier2] = path.map(print, 'items');
30+
const [specifier1, specifier2] = path.map(printVariant(print), 'items');
3031

3132
if (specifier1 === undefined) return '';
3233

src/slang-nodes/FallbackFunctionAttributes.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { NonterminalKind } from '@nomicfoundation/slang/cst';
22
import { doc } from 'prettier';
33
import { sortFunctionAttributes } from '../slang-utils/sort-function-attributes.js';
4+
import { printVariant } from '../slang-printers/print-variant.js';
45
import { SlangNode } from './SlangNode.js';
56
import { FallbackFunctionAttribute } from './FallbackFunctionAttribute.js';
67

@@ -30,6 +31,6 @@ export class FallbackFunctionAttributes extends SlangNode {
3031
}
3132

3233
print(path: AstPath<FallbackFunctionAttributes>, print: PrintFunction): Doc {
33-
return path.map(print, 'items').map((item) => [line, item]);
34+
return path.map(printVariant(print), 'items').map((item) => [line, item]);
3435
}
3536
}

src/slang-nodes/FunctionAttributes.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { NonterminalKind } from '@nomicfoundation/slang/cst';
22
import { doc } from 'prettier';
33
import { sortFunctionAttributes } from '../slang-utils/sort-function-attributes.js';
4+
import { printVariant } from '../slang-printers/print-variant.js';
45
import { SlangNode } from './SlangNode.js';
56
import { FunctionAttribute } from './FunctionAttribute.js';
67

@@ -25,6 +26,6 @@ export class FunctionAttributes extends SlangNode {
2526
}
2627

2728
print(path: AstPath<FunctionAttributes>, print: PrintFunction): Doc {
28-
return path.map(print, 'items').map((item) => [line, item]);
29+
return path.map(printVariant(print), 'items').map((item) => [line, item]);
2930
}
3031
}

src/slang-nodes/FunctionTypeAttributes.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { NonterminalKind } from '@nomicfoundation/slang/cst';
22
import { doc } from 'prettier';
33
import { sortFunctionAttributes } from '../slang-utils/sort-function-attributes.js';
4+
import { printVariant } from '../slang-printers/print-variant.js';
45
import { SlangNode } from './SlangNode.js';
56
import { FunctionTypeAttribute } from './FunctionTypeAttribute.js';
67

@@ -24,6 +25,6 @@ export class FunctionTypeAttributes extends SlangNode {
2425
}
2526

2627
print(path: AstPath<FunctionTypeAttributes>, print: PrintFunction): Doc {
27-
return path.map(print, 'items').map((item) => [line, item]);
28+
return path.map(printVariant(print), 'items').map((item) => [line, item]);
2829
}
2930
}

src/slang-nodes/ModifierAttributes.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { NonterminalKind } from '@nomicfoundation/slang/cst';
22
import { doc } from 'prettier';
33
import { sortFunctionAttributes } from '../slang-utils/sort-function-attributes.js';
4+
import { printVariant } from '../slang-printers/print-variant.js';
45
import { SlangNode } from './SlangNode.js';
56
import { ModifierAttribute } from './ModifierAttribute.js';
67

@@ -24,6 +25,6 @@ export class ModifierAttributes extends SlangNode {
2425
}
2526

2627
print(path: AstPath<ModifierAttributes>, print: PrintFunction): Doc {
27-
return path.map(print, 'items').map((item) => [line, item]);
28+
return path.map(printVariant(print), 'items').map((item) => [line, item]);
2829
}
2930
}

src/slang-nodes/PositionalArguments.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { NonterminalKind } from '@nomicfoundation/slang/cst';
22
import { printComments } from '../slang-printers/print-comments.js';
33
import { printSeparatedItem } from '../slang-printers/print-separated-item.js';
44
import { printSeparatedList } from '../slang-printers/print-separated-list.js';
5+
import { printVariant } from '../slang-printers/print-variant.js';
56
import { SlangNode } from './SlangNode.js';
67
import { Expression } from './Expression.js';
78

@@ -27,7 +28,7 @@ export class PositionalArguments extends SlangNode {
2728
options: ParserOptions<AstNode>
2829
): Doc {
2930
if (this.items.length > 0) {
30-
return printSeparatedList(path.map(print, 'items'));
31+
return printSeparatedList(path.map(printVariant(print), 'items'));
3132
}
3233
const argumentComments = printComments(path, options);
3334

src/slang-nodes/ReceiveFunctionAttributes.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { NonterminalKind } from '@nomicfoundation/slang/cst';
22
import { doc } from 'prettier';
33
import { sortFunctionAttributes } from '../slang-utils/sort-function-attributes.js';
4+
import { printVariant } from '../slang-printers/print-variant.js';
45
import { SlangNode } from './SlangNode.js';
56
import { ReceiveFunctionAttribute } from './ReceiveFunctionAttribute.js';
67

@@ -30,6 +31,6 @@ export class ReceiveFunctionAttributes extends SlangNode {
3031
}
3132

3233
print(path: AstPath<ReceiveFunctionAttributes>, print: PrintFunction): Doc {
33-
return path.map(print, 'items').map((item) => [line, item]);
34+
return path.map(printVariant(print), 'items').map((item) => [line, item]);
3435
}
3536
}

src/slang-nodes/StateVariableAttributes.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { NonterminalKind } from '@nomicfoundation/slang/cst';
22
import { doc } from 'prettier';
33
import { sortFunctionAttributes } from '../slang-utils/sort-function-attributes.js';
4+
import { printVariant } from '../slang-printers/print-variant.js';
45
import { SlangNode } from './SlangNode.js';
56
import { StateVariableAttribute } from './StateVariableAttribute.js';
67

@@ -25,7 +26,7 @@ export class StateVariableAttributes extends SlangNode {
2526

2627
print(path: AstPath<StateVariableAttributes>, print: PrintFunction): Doc {
2728
return this.items.length
28-
? path.map(print, 'items').map((item) => [line, item])
29+
? path.map(printVariant(print), 'items').map((item) => [line, item])
2930
: '';
3031
}
3132
}

0 commit comments

Comments
 (0)