Skip to content

Commit bfb30d8

Browse files
authored
Support for Slang 1.0.0 (#1106)
* Bump @nomicfoundation/slang from 0.19.0 to 0.20.1 * passing tests * fix building * Slang 1.0.0
1 parent 3f803ca commit bfb30d8

File tree

12 files changed

+27
-69
lines changed

12 files changed

+27
-69
lines changed

package-lock.json

Lines changed: 8 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@
108108
"webpack-cli": "^6.0.1"
109109
},
110110
"dependencies": {
111-
"@nomicfoundation/slang": "0.19.0",
111+
"@nomicfoundation/slang": "1.0.0",
112112
"@solidity-parser/parser": "^0.19.0",
113113
"semver": "^7.7.1"
114114
},

src/slang-nodes/Expression.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { ConditionalExpression } from './ConditionalExpression.js';
99
import { OrExpression } from './OrExpression.js';
1010
import { AndExpression } from './AndExpression.js';
1111
import { EqualityExpression } from './EqualityExpression.js';
12-
import { ComparisonExpression } from './ComparisonExpression.js';
12+
import { InequalityExpression } from './InequalityExpression.js';
1313
import { BitwiseOrExpression } from './BitwiseOrExpression.js';
1414
import { BitwiseXorExpression } from './BitwiseXorExpression.js';
1515
import { BitwiseAndExpression } from './BitwiseAndExpression.js';
@@ -51,7 +51,7 @@ export class Expression implements SlangNode {
5151
| OrExpression
5252
| AndExpression
5353
| EqualityExpression
54-
| ComparisonExpression
54+
| InequalityExpression
5555
| BitwiseOrExpression
5656
| BitwiseXorExpression
5757
| BitwiseAndExpression
@@ -112,9 +112,9 @@ export class Expression implements SlangNode {
112112
options
113113
);
114114
break;
115-
case NonterminalKind.ComparisonExpression:
116-
this.variant = new ComparisonExpression(
117-
ast.variant as ast.ComparisonExpression,
115+
case NonterminalKind.InequalityExpression:
116+
this.variant = new InequalityExpression(
117+
ast.variant as ast.InequalityExpression,
118118
options
119119
);
120120
break;
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ import type { AstPath, Doc, ParserOptions } from 'prettier';
88
import type { AstNode } from './types.d.ts';
99
import type { PrintFunction, SlangNode } from '../types.d.ts';
1010

11-
export class ComparisonExpression implements SlangNode {
12-
readonly kind = NonterminalKind.ComparisonExpression;
11+
export class InequalityExpression implements SlangNode {
12+
readonly kind = NonterminalKind.InequalityExpression;
1313

1414
comments;
1515

@@ -21,7 +21,7 @@ export class ComparisonExpression implements SlangNode {
2121

2222
rightOperand: Expression;
2323

24-
constructor(ast: ast.ComparisonExpression, options: ParserOptions<AstNode>) {
24+
constructor(ast: ast.InequalityExpression, options: ParserOptions<AstNode>) {
2525
let metadata = getNodeMetadata(ast);
2626

2727
this.leftOperand = new Expression(ast.leftOperand, options);
@@ -35,7 +35,7 @@ export class ComparisonExpression implements SlangNode {
3535
}
3636

3737
print(
38-
path: AstPath<ComparisonExpression>,
38+
path: AstPath<InequalityExpression>,
3939
print: PrintFunction,
4040
options: ParserOptions<AstNode>
4141
): Doc {

src/slang-nodes/YulBuiltInFunction.ts

Lines changed: 0 additions & 29 deletions
This file was deleted.

src/slang-nodes/YulExpression.ts

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import { NonterminalKind } from '@nomicfoundation/slang/cst';
22
import { getNodeMetadata, updateMetadata } from '../slang-utils/metadata.js';
33
import { YulFunctionCallExpression } from './YulFunctionCallExpression.js';
44
import { YulLiteral } from './YulLiteral.js';
5-
import { YulBuiltInFunction } from './YulBuiltInFunction.js';
65
import { YulPath } from './YulPath.js';
76

87
import type * as ast from '@nomicfoundation/slang/ast';
@@ -17,11 +16,7 @@ export class YulExpression implements SlangNode {
1716

1817
loc;
1918

20-
variant:
21-
| YulFunctionCallExpression
22-
| YulLiteral
23-
| YulBuiltInFunction
24-
| YulPath;
19+
variant: YulFunctionCallExpression | YulLiteral | YulPath;
2520

2621
constructor(ast: ast.YulExpression, options: ParserOptions<AstNode>) {
2722
let metadata = getNodeMetadata(ast);
@@ -36,11 +31,6 @@ export class YulExpression implements SlangNode {
3631
case NonterminalKind.YulLiteral:
3732
this.variant = new YulLiteral(ast.variant as ast.YulLiteral, options);
3833
break;
39-
case NonterminalKind.YulBuiltInFunction:
40-
this.variant = new YulBuiltInFunction(
41-
ast.variant as ast.YulBuiltInFunction
42-
);
43-
break;
4434
case NonterminalKind.YulPath:
4535
this.variant = new YulPath(ast.variant as ast.YulPath);
4636
break;

src/slang-nodes/types.d.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import type { CallOptionsExpression } from './CallOptionsExpression.ts';
2020
import type { CatchClause } from './CatchClause.ts';
2121
import type { CatchClauseError } from './CatchClauseError.ts';
2222
import type { CatchClauses } from './CatchClauses.ts';
23-
import type { ComparisonExpression } from './ComparisonExpression.ts';
2423
import type { ConditionalExpression } from './ConditionalExpression.ts';
2524
import type { ConstantDefinition } from './ConstantDefinition.ts';
2625
import type { ConstructorAttribute } from './ConstructorAttribute.ts';
@@ -80,6 +79,7 @@ import type { ImportDeconstructionSymbols } from './ImportDeconstructionSymbols.
8079
import type { ImportDirective } from './ImportDirective.ts';
8180
import type { IndexAccessEnd } from './IndexAccessEnd.ts';
8281
import type { IndexAccessExpression } from './IndexAccessExpression.ts';
82+
import type { InequalityExpression } from './InequalityExpression.ts';
8383
import type { InheritanceSpecifier } from './InheritanceSpecifier.ts';
8484
import type { InheritanceType } from './InheritanceType.ts';
8585
import type { InheritanceTypes } from './InheritanceTypes.ts';
@@ -190,7 +190,6 @@ import type { YulArguments } from './YulArguments.ts';
190190
import type { YulAssignmentOperator } from './YulAssignmentOperator.ts';
191191
import type { YulBlock } from './YulBlock.ts';
192192
import type { YulBreakStatement } from './YulBreakStatement.ts';
193-
import type { YulBuiltInFunction } from './YulBuiltInFunction.ts';
194193
import type { YulColonAndEqual } from './YulColonAndEqual.ts';
195194
import type { YulContinueStatement } from './YulContinueStatement.ts';
196195
import type { YulDefaultCase } from './YulDefaultCase.ts';
@@ -321,7 +320,7 @@ export type StrictAstNode =
321320
| OrExpression
322321
| AndExpression
323322
| EqualityExpression
324-
| ComparisonExpression
323+
| InequalityExpression
325324
| BitwiseOrExpression
326325
| BitwiseXorExpression
327326
| BitwiseAndExpression
@@ -409,7 +408,6 @@ export type StrictAstNode =
409408
| YulAssignmentOperator
410409
| YulSwitchCase
411410
| YulExpression
412-
| YulBuiltInFunction
413411
| YulLiteral
414412
| SourceUnitMembers
415413
| VersionExpressionSet

src/slang-printers/print-binary-operation.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import { createKindCheckFunction } from '../slang-utils/create-kind-check-functi
55

66
import type { AstPath, Doc } from 'prettier';
77
import type { BinaryOperation, StrictAstNode } from '../slang-nodes/types.d.ts';
8-
import type { ComparisonExpression } from '../slang-nodes/ComparisonExpression.ts';
98
import type { EqualityExpression } from '../slang-nodes/EqualityExpression.ts';
9+
import type { InequalityExpression } from '../slang-nodes/InequalityExpression.ts';
1010

1111
const { group, indent } = doc.builders;
1212

@@ -25,7 +25,7 @@ const isBinaryOperationWithoutComparison = createKindCheckFunction([
2525
node: StrictAstNode
2626
) => node is Exclude<
2727
BinaryOperation,
28-
ComparisonExpression | EqualityExpression
28+
EqualityExpression | InequalityExpression
2929
>;
3030

3131
const binaryGroupRulesBuilder =

src/slang-utils/is-binary-operation.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ export const isBinaryOperation = createKindCheckFunction([
1111
NonterminalKind.BitwiseAndExpression,
1212
NonterminalKind.BitwiseOrExpression,
1313
NonterminalKind.BitwiseXorExpression,
14-
NonterminalKind.ComparisonExpression,
1514
NonterminalKind.EqualityExpression,
15+
NonterminalKind.InequalityExpression,
1616
NonterminalKind.AndExpression,
1717
NonterminalKind.OrExpression,
1818
NonterminalKind.ShiftExpression

src/types.d.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ export type SlangAstNode =
142142
| ast.OrExpression
143143
| ast.AndExpression
144144
| ast.EqualityExpression
145-
| ast.ComparisonExpression
145+
| ast.InequalityExpression
146146
| ast.BitwiseOrExpression
147147
| ast.BitwiseXorExpression
148148
| ast.BitwiseAndExpression
@@ -230,7 +230,6 @@ export type SlangAstNode =
230230
| ast.YulAssignmentOperator
231231
| ast.YulSwitchCase
232232
| ast.YulExpression
233-
| ast.YulBuiltInFunction
234233
| ast.YulLiteral
235234
| ast.SourceUnitMembers
236235
| ast.VersionExpressionSet

0 commit comments

Comments
 (0)