Skip to content

Commit caac045

Browse files
committed
Creating a hub class for PolymorphicNodes with a non-string variant so we can prepare to override the storing of comments
1 parent a2f6367 commit caac045

40 files changed

Lines changed: 85 additions & 77 deletions

src/slang-nodes/ArgumentsDeclaration.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import * as ast from '@nomicfoundation/slang/ast';
22
import { NonterminalKind } from '@nomicfoundation/slang/cst';
3-
import { SlangNode } from './SlangNode.js';
3+
import { PolymorphicNode } from './PolymorphicNode.js';
44
import { PositionalArgumentsDeclaration } from './PositionalArgumentsDeclaration.js';
55
import { NamedArgumentsDeclaration } from './NamedArgumentsDeclaration.js';
66

@@ -21,7 +21,7 @@ function createNonterminalVariant(
2121
return exhaustiveCheck;
2222
}
2323

24-
export class ArgumentsDeclaration extends SlangNode {
24+
export class ArgumentsDeclaration extends PolymorphicNode {
2525
readonly kind = NonterminalKind.ArgumentsDeclaration;
2626

2727
variant: PositionalArgumentsDeclaration | NamedArgumentsDeclaration;

src/slang-nodes/ConstructorAttribute.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@ import {
22
NonterminalKind,
33
TerminalNode as SlangTerminalNode
44
} from '@nomicfoundation/slang/cst';
5-
import { SlangNode } from './SlangNode.js';
5+
import { PolymorphicNode } from './PolymorphicNode.js';
66
import { ModifierInvocation } from './ModifierInvocation.js';
77
import { TerminalNode } from './TerminalNode.js';
88

99
import type * as ast from '@nomicfoundation/slang/ast';
1010
import type { ParserOptions } from 'prettier';
1111
import type { AstNode } from './types.d.ts';
1212

13-
export class ConstructorAttribute extends SlangNode {
13+
export class ConstructorAttribute extends PolymorphicNode {
1414
readonly kind = NonterminalKind.ConstructorAttribute;
1515

1616
variant: ModifierInvocation | TerminalNode;

src/slang-nodes/ContractMember.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import * as ast from '@nomicfoundation/slang/ast';
22
import { NonterminalKind } from '@nomicfoundation/slang/cst';
3-
import { SlangNode } from './SlangNode.js';
3+
import { PolymorphicNode } from './PolymorphicNode.js';
44
import { UsingDirective } from './UsingDirective.js';
55
import { FunctionDefinition } from './FunctionDefinition.js';
66
import { ConstructorDefinition } from './ConstructorDefinition.js';
@@ -65,7 +65,7 @@ function createNonterminalVariant(
6565
return exhaustiveCheck;
6666
}
6767

68-
export class ContractMember extends SlangNode {
68+
export class ContractMember extends PolymorphicNode {
6969
readonly kind = NonterminalKind.ContractMember;
7070

7171
variant:

src/slang-nodes/ContractSpecifier.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import * as ast from '@nomicfoundation/slang/ast';
22
import { NonterminalKind } from '@nomicfoundation/slang/cst';
3-
import { SlangNode } from './SlangNode.js';
3+
import { PolymorphicNode } from './PolymorphicNode.js';
44
import { InheritanceSpecifier } from './InheritanceSpecifier.js';
55
import { StorageLayoutSpecifier } from './StorageLayoutSpecifier.js';
66

@@ -21,7 +21,7 @@ function createNonterminalVariant(
2121
return exhaustiveCheck;
2222
}
2323

24-
export class ContractSpecifier extends SlangNode {
24+
export class ContractSpecifier extends PolymorphicNode {
2525
readonly kind = NonterminalKind.ContractSpecifier;
2626

2727
variant: InheritanceSpecifier | StorageLayoutSpecifier;

src/slang-nodes/ElementaryType.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ import {
22
NonterminalKind,
33
TerminalNode as SlangTerminalNode
44
} from '@nomicfoundation/slang/cst';
5-
import { SlangNode } from './SlangNode.js';
5+
import { PolymorphicNode } from './PolymorphicNode.js';
66
import { AddressType } from './AddressType.js';
77
import { TerminalNode } from './TerminalNode.js';
88

99
import type * as ast from '@nomicfoundation/slang/ast';
1010

11-
export class ElementaryType extends SlangNode {
11+
export class ElementaryType extends PolymorphicNode {
1212
readonly kind = NonterminalKind.ElementaryType;
1313

1414
variant: AddressType | TerminalNode;

src/slang-nodes/ExperimentalFeature.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@ import {
22
NonterminalKind,
33
TerminalNode as SlangTerminalNode
44
} from '@nomicfoundation/slang/cst';
5-
import { SlangNode } from './SlangNode.js';
5+
import { PolymorphicNode } from './PolymorphicNode.js';
66
import { StringLiteral } from './StringLiteral.js';
77
import { TerminalNode } from './TerminalNode.js';
88

99
import type * as ast from '@nomicfoundation/slang/ast';
1010
import type { ParserOptions } from 'prettier';
1111
import type { AstNode } from './types.d.ts';
1212

13-
export class ExperimentalFeature extends SlangNode {
13+
export class ExperimentalFeature extends PolymorphicNode {
1414
readonly kind = NonterminalKind.ExperimentalFeature;
1515

1616
variant: StringLiteral | TerminalNode;

src/slang-nodes/Expression.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import {
33
NonterminalKind,
44
TerminalNode as SlangTerminalNode
55
} from '@nomicfoundation/slang/cst';
6-
import { SlangNode } from './SlangNode.js';
6+
import { PolymorphicNode } from './PolymorphicNode.js';
77
import { AssignmentExpression } from './AssignmentExpression.js';
88
import { ConditionalExpression } from './ConditionalExpression.js';
99
import { OrExpression } from './OrExpression.js';
@@ -125,7 +125,7 @@ function createNonterminalVariant(
125125
return exhaustiveCheck;
126126
}
127127

128-
export class Expression extends SlangNode {
128+
export class Expression extends PolymorphicNode {
129129
readonly kind = NonterminalKind.Expression;
130130

131131
variant:

src/slang-nodes/FallbackFunctionAttribute.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import {
33
NonterminalKind,
44
TerminalNode as SlangTerminalNode
55
} from '@nomicfoundation/slang/cst';
6-
import { SlangNode } from './SlangNode.js';
6+
import { PolymorphicNode } from './PolymorphicNode.js';
77
import { ModifierInvocation } from './ModifierInvocation.js';
88
import { OverrideSpecifier } from './OverrideSpecifier.js';
99
import { TerminalNode } from './TerminalNode.js';
@@ -25,7 +25,7 @@ function createNonterminalVariant(
2525
return exhaustiveCheck;
2626
}
2727

28-
export class FallbackFunctionAttribute extends SlangNode {
28+
export class FallbackFunctionAttribute extends PolymorphicNode {
2929
readonly kind = NonterminalKind.FallbackFunctionAttribute;
3030

3131
variant: ModifierInvocation | OverrideSpecifier | TerminalNode;

src/slang-nodes/ForStatementCondition.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@ import {
22
NonterminalKind,
33
TerminalNode as SlangTerminalNode
44
} from '@nomicfoundation/slang/cst';
5-
import { SlangNode } from './SlangNode.js';
5+
import { PolymorphicNode } from './PolymorphicNode.js';
66
import { ExpressionStatement } from './ExpressionStatement.js';
77
import { TerminalNode } from './TerminalNode.js';
88

99
import type * as ast from '@nomicfoundation/slang/ast';
1010
import type { ParserOptions } from 'prettier';
1111
import type { AstNode } from './types.d.ts';
1212

13-
export class ForStatementCondition extends SlangNode {
13+
export class ForStatementCondition extends PolymorphicNode {
1414
readonly kind = NonterminalKind.ForStatementCondition;
1515

1616
variant: ExpressionStatement | TerminalNode;

src/slang-nodes/ForStatementInitialization.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import {
33
NonterminalKind,
44
TerminalNode as SlangTerminalNode
55
} from '@nomicfoundation/slang/cst';
6-
import { SlangNode } from './SlangNode.js';
6+
import { PolymorphicNode } from './PolymorphicNode.js';
77
import { ExpressionStatement } from './ExpressionStatement.js';
88
import { VariableDeclarationStatement } from './VariableDeclarationStatement.js';
99
import { TupleDeconstructionStatement } from './TupleDeconstructionStatement.js';
@@ -32,7 +32,7 @@ function createNonterminalVariant(
3232
return exhaustiveCheck;
3333
}
3434

35-
export class ForStatementInitialization extends SlangNode {
35+
export class ForStatementInitialization extends PolymorphicNode {
3636
readonly kind = NonterminalKind.ForStatementInitialization;
3737

3838
variant:

0 commit comments

Comments
 (0)