Skip to content

Commit 7b62b5e

Browse files
committed
AbicoderVersion is not really a PolymorphicNode since variant can be a string
1 parent 9b5bb2f commit 7b62b5e

3 files changed

Lines changed: 9 additions & 8 deletions

File tree

src/slang-nodes/AbicoderPragma.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { NonterminalKind } from '@nomicfoundation/slang/cst';
2-
import { extractVariant } from '../slang-utils/extract-variant.js';
32
import { SlangNode } from './SlangNode.js';
43
import { AbicoderVersion } from './AbicoderVersion.js';
54

@@ -10,12 +9,12 @@ import type { PrintFunction } from '../types.d.ts';
109
export class AbicoderPragma extends SlangNode {
1110
readonly kind = NonterminalKind.AbicoderPragma;
1211

13-
version: AbicoderVersion['variant'];
12+
version: AbicoderVersion;
1413

1514
constructor(ast: ast.AbicoderPragma) {
1615
super(ast);
1716

18-
this.version = extractVariant(new AbicoderVersion(ast.version));
17+
this.version = new AbicoderVersion(ast.version);
1918
}
2019

2120
print(path: AstPath<AbicoderPragma>, print: PrintFunction): Doc {

src/slang-nodes/AbicoderVersion.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,21 @@
11
import { NonterminalKind } from '@nomicfoundation/slang/cst';
22
import { SlangNode } from './SlangNode.js';
3-
import { TerminalNode } from './TerminalNode.js';
43

54
import type * as ast from '@nomicfoundation/slang/ast';
5+
import type { Doc } from 'prettier';
66

77
export class AbicoderVersion extends SlangNode {
88
readonly kind = NonterminalKind.AbicoderPragma;
99

10-
variant: TerminalNode;
10+
variant: string;
1111

1212
constructor(ast: ast.AbicoderVersion) {
1313
super(ast);
1414

15-
this.variant = new TerminalNode(ast.variant);
15+
this.variant = ast.variant.unparse();
16+
}
17+
18+
print(): Doc {
19+
return this.variant;
1620
}
1721
}

src/slangPrinter.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import { locEnd, locStart } from './slang-utils/loc.js';
44
import type { AstPath, Doc, ParserOptions } from 'prettier';
55
import type { AstNode, StrictAstNode } from './slang-nodes/types.d.ts';
66
import type { PrintFunction } from './types.d.ts';
7-
import type { AbicoderVersion } from './slang-nodes/AbicoderVersion.js';
87
import type { ArgumentsDeclaration } from './slang-nodes/ArgumentsDeclaration.js';
98
import type { ConstructorAttribute } from './slang-nodes/ConstructorAttribute.js';
109
import type { FallbackFunctionAttribute } from './slang-nodes/FallbackFunctionAttribute.js';
@@ -70,7 +69,6 @@ function genericPrint(
7069
path: AstPath<
7170
Exclude<
7271
StrictAstNode,
73-
| AbicoderVersion
7472
| ArgumentsDeclaration
7573
| ConstructorAttribute
7674
| FallbackFunctionAttribute

0 commit comments

Comments
 (0)