From 0c1b2c526d31e19692c6dd98bc910f4ed59e1df9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2026 18:37:39 +0000 Subject: [PATCH 1/5] Bump typescript from 5.9.3 to 6.0.2 Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.9.3 to 6.0.2. - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Commits](https://github.com/microsoft/TypeScript/compare/v5.9.3...v6.0.2) --- updated-dependencies: - dependency-name: typescript dependency-version: 6.0.2 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index d5568b25f..440cd7682 100644 --- a/package-lock.json +++ b/package-lock.json @@ -40,7 +40,7 @@ "solc": "^0.8.34", "ts-loader": "^9.5.7", "ts-node": "^10.9.2", - "typescript": "^5.9.3", + "typescript": "^6.0.2", "webpack": "^5.105.4", "webpack-cli": "^7.0.2" }, @@ -9562,9 +9562,9 @@ } }, "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.2.tgz", + "integrity": "sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==", "dev": true, "license": "Apache-2.0", "bin": { diff --git a/package.json b/package.json index 1add98c49..2438754ed 100644 --- a/package.json +++ b/package.json @@ -110,7 +110,7 @@ "solc": "^0.8.34", "ts-loader": "^9.5.7", "ts-node": "^10.9.2", - "typescript": "^5.9.3", + "typescript": "^6.0.2", "webpack": "^5.105.4", "webpack-cli": "^7.0.2" }, From bef602581c7e2a880f39e15d4301aa5cc0ef2e3a Mon Sep 17 00:00:00 2001 From: Klaus Date: Mon, 30 Mar 2026 16:32:37 -0300 Subject: [PATCH 2/5] fixing configuration for typescript 6 and es2023 --- src/slangPrinter.ts | 8 +++++--- tsconfig.json | 3 ++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/slangPrinter.ts b/src/slangPrinter.ts index 3aa5b7557..3e979b986 100644 --- a/src/slangPrinter.ts +++ b/src/slangPrinter.ts @@ -22,7 +22,7 @@ function hasNodeIgnoreComment({ comments }: StrictAstNode): boolean { ); } -function ignoreComments(path: AstPath): void { +function ignoreComments(path: AstPath): void { const node = path.node; // We ignore anything that is not an object if (node === null || typeof node !== 'object') return; @@ -38,7 +38,9 @@ function ignoreComments(path: AstPath): void { break; // The key `comments` will contain every comment for this node. case 'comments': - path.each((commentPath) => (commentPath.node.printed = true), key); + if (node.comments !== undefined) { + path.each((commentPath) => (commentPath.node.printed = true), key); + } break; default: // If the value for that key is an Array or an Object we go deeper. @@ -46,7 +48,7 @@ function ignoreComments(path: AstPath): void { if (typeof childNode === 'object') { if (Array.isArray(childNode)) { path.each(ignoreComments, key); - return; + break; } path.call(ignoreComments, key); } diff --git a/tsconfig.json b/tsconfig.json index 7449a88e3..d2d472e2a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,11 +1,12 @@ { "compilerOptions": { "allowJs": true, + "rootDir": "./src", "outDir": "./dist/", "noImplicitAny": true, "strictPropertyInitialization": true, "sourceMap": true, - "target": "es6", + "target": "es2023", "module": "NodeNext", "moduleResolution": "NodeNext", "strict": true, From 33509c19f83ca35b98e3c9ca69fd634740c7a17d Mon Sep 17 00:00:00 2001 From: Klaus Date: Mon, 30 Mar 2026 17:02:43 -0300 Subject: [PATCH 3/5] adding a tsconfig just to build the test files --- package.json | 2 +- tsconfig.test.json | 19 +++++++++++++++++++ test.config.js => webpack.test.config.js | 8 +++++++- 3 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 tsconfig.test.json rename test.config.js => webpack.test.config.js (78%) diff --git a/package.json b/package.json index 2438754ed..5fa546a40 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "scripts": { "build": "webpack --env production", "build:dev": "webpack --env development", - "build:test": "webpack --config test.config.js", + "build:test": "webpack --config webpack.test.config.js", "eslint": "eslint 'src/**' 'tests/**'", "lint": "npm run eslint && npm run prettier -- --list-different && npm run knip", "lint:fix": "npm run eslint -- --fix && npm run prettier -- --write", diff --git a/tsconfig.test.json b/tsconfig.test.json new file mode 100644 index 000000000..cc274f7ae --- /dev/null +++ b/tsconfig.test.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "allowJs": true, + "rootDir": "./", + "outDir": "./dist/", + "noImplicitAny": true, + "strictPropertyInitialization": true, + "sourceMap": true, + "target": "es2023", + "module": "NodeNext", + "moduleResolution": "NodeNext", + "strict": true, + "esModuleInterop": true + }, + "ts-node": { + "files": true + }, + "include": ["./src/**/*"] +} diff --git a/test.config.js b/webpack.test.config.js similarity index 78% rename from test.config.js rename to webpack.test.config.js index ea52663fd..41cb46f82 100644 --- a/test.config.js +++ b/webpack.test.config.js @@ -26,7 +26,13 @@ export default { rules: [ { test: /\.ts$/, - use: 'ts-loader', + use: [ + { + loader: 'ts-loader', + // This test file includes the variant-coverage directory, which is not included in the main tsconfig.json + options: { configFile: 'tsconfig.test.json' } + } + ], exclude: /node_modules/ } ] From 073b4c4e6151c9d4454da0ed3a33d8f5df9d9959 Mon Sep 17 00:00:00 2001 From: Klaus Date: Mon, 30 Mar 2026 17:28:16 -0300 Subject: [PATCH 4/5] extending `tsconfig.json` instead of copy pasting it. --- tsconfig.test.json | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/tsconfig.test.json b/tsconfig.test.json index cc274f7ae..9bc345759 100644 --- a/tsconfig.test.json +++ b/tsconfig.test.json @@ -1,19 +1,6 @@ { + "extends": "./tsconfig.json", "compilerOptions": { - "allowJs": true, - "rootDir": "./", - "outDir": "./dist/", - "noImplicitAny": true, - "strictPropertyInitialization": true, - "sourceMap": true, - "target": "es2023", - "module": "NodeNext", - "moduleResolution": "NodeNext", - "strict": true, - "esModuleInterop": true - }, - "ts-node": { - "files": true - }, - "include": ["./src/**/*"] + "rootDir": "./" + } } From 474496b739cbf951d942d2b663321c62d4eded31 Mon Sep 17 00:00:00 2001 From: Klaus Date: Mon, 30 Mar 2026 22:28:08 -0300 Subject: [PATCH 5/5] now that we have 2 configurations for `tsconfig`, we can add back the `eslint` linting for `variant-coverage` that were dismissed because of the single `tsconfig` --- eslint.config.mjs | 3 +-- tsconfig.test.json | 3 ++- variant-coverage/ArgumentsDeclaration.ts | 3 ++- variant-coverage/ContractMember.ts | 3 ++- variant-coverage/ContractSpecifier.ts | 3 ++- variant-coverage/Expression.ts | 3 ++- variant-coverage/FallbackFunctionAttribute.ts | 3 ++- variant-coverage/ForStatementInitialization.ts | 3 ++- variant-coverage/FunctionAttribute.ts | 3 ++- variant-coverage/ImportClause.ts | 3 ++- variant-coverage/MappingKeyType.ts | 3 ++- variant-coverage/Pragma.ts | 3 ++- variant-coverage/ReceiveFunctionAttribute.ts | 3 ++- variant-coverage/SourceUnitMember.ts | 3 ++- variant-coverage/Statement.ts | 3 ++- variant-coverage/StringExpression.ts | 3 ++- variant-coverage/TupleMember.ts | 3 ++- variant-coverage/TypeName.ts | 3 ++- variant-coverage/UsingClause.ts | 3 ++- variant-coverage/VersionExpression.ts | 3 ++- variant-coverage/YulExpression.ts | 3 ++- variant-coverage/YulLiteral.ts | 3 ++- variant-coverage/YulStatement.ts | 3 ++- variant-coverage/YulSwitchCase.ts | 3 ++- 24 files changed, 47 insertions(+), 25 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index 769e54f6b..561cf4254 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -18,7 +18,6 @@ const compat = new FlatCompat({ export default [ { ignores: [ - 'variant-coverage/**/*.ts', 'coverage/**/*.js', 'dist/**/*.cjs', 'dist/**/*.js', @@ -72,7 +71,7 @@ export default [ sourceType: 'script', parserOptions: { - project: ['tsconfig.json'] + project: ['tsconfig.test.json'] } }, diff --git a/tsconfig.test.json b/tsconfig.test.json index 9bc345759..228d4a142 100644 --- a/tsconfig.test.json +++ b/tsconfig.test.json @@ -2,5 +2,6 @@ "extends": "./tsconfig.json", "compilerOptions": { "rootDir": "./" - } + }, + "include": ["./src/**/*", "./variant-coverage/**/*"] } diff --git a/variant-coverage/ArgumentsDeclaration.ts b/variant-coverage/ArgumentsDeclaration.ts index 1d276bf1d..9b8d3ae70 100644 --- a/variant-coverage/ArgumentsDeclaration.ts +++ b/variant-coverage/ArgumentsDeclaration.ts @@ -7,6 +7,7 @@ export function checkArgumentsDeclarationVariant( ): void { if (variant instanceof ast.PositionalArgumentsDeclaration) return; if (variant instanceof ast.NamedArgumentsDeclaration) return; - /* c8 ignore next 2 */ + /* c8 ignore next 3 */ const _exhaustiveCheck: never = variant; + return _exhaustiveCheck; } diff --git a/variant-coverage/ContractMember.ts b/variant-coverage/ContractMember.ts index 101cf9a71..0a582f283 100644 --- a/variant-coverage/ContractMember.ts +++ b/variant-coverage/ContractMember.ts @@ -17,6 +17,7 @@ export function checkContractMemberVariant( if (variant instanceof ast.StateVariableDefinition) return; if (variant instanceof ast.ErrorDefinition) return; if (variant instanceof ast.UserDefinedValueTypeDefinition) return; - /* c8 ignore next 2 */ + /* c8 ignore next 3 */ const _exhaustiveCheck: never = variant; + return _exhaustiveCheck; } diff --git a/variant-coverage/ContractSpecifier.ts b/variant-coverage/ContractSpecifier.ts index 849f9bf00..566e7c87a 100644 --- a/variant-coverage/ContractSpecifier.ts +++ b/variant-coverage/ContractSpecifier.ts @@ -6,6 +6,7 @@ export function checkContractSpecifierVariant( ): void { if (variant instanceof ast.InheritanceSpecifier) return; if (variant instanceof ast.StorageLayoutSpecifier) return; - /* c8 ignore next 2 */ + /* c8 ignore next 3 */ const _exhaustiveCheck: never = variant; + return _exhaustiveCheck; } diff --git a/variant-coverage/Expression.ts b/variant-coverage/Expression.ts index e35eff6c2..267d70388 100644 --- a/variant-coverage/Expression.ts +++ b/variant-coverage/Expression.ts @@ -33,6 +33,7 @@ export function checkExpressionVariant( if (variant instanceof ast.DecimalNumberExpression) return; if (variant instanceof ast.StringExpression) return; if (variant instanceof ast.ElementaryType) return; - /* c8 ignore next 2 */ + /* c8 ignore next 3 */ const _exhaustiveCheck: never = variant; + return _exhaustiveCheck; } diff --git a/variant-coverage/FallbackFunctionAttribute.ts b/variant-coverage/FallbackFunctionAttribute.ts index 3dfb70ecb..c672c7a79 100644 --- a/variant-coverage/FallbackFunctionAttribute.ts +++ b/variant-coverage/FallbackFunctionAttribute.ts @@ -9,6 +9,7 @@ export function checkFallbackFunctionAttributeVariant( if (variant instanceof TerminalNode) return; if (variant instanceof ast.ModifierInvocation) return; if (variant instanceof ast.OverrideSpecifier) return; - /* c8 ignore next 2 */ + /* c8 ignore next 3 */ const _exhaustiveCheck: never = variant; + return _exhaustiveCheck; } diff --git a/variant-coverage/ForStatementInitialization.ts b/variant-coverage/ForStatementInitialization.ts index 1c87d4f4c..660db07b1 100644 --- a/variant-coverage/ForStatementInitialization.ts +++ b/variant-coverage/ForStatementInitialization.ts @@ -10,6 +10,7 @@ export function checkForStatementInitializationVariant( if (variant instanceof ast.ExpressionStatement) return; if (variant instanceof ast.VariableDeclarationStatement) return; if (variant instanceof ast.TupleDeconstructionStatement) return; - /* c8 ignore next 2 */ + /* c8 ignore next 3 */ const _exhaustiveCheck: never = variant; + return _exhaustiveCheck; } diff --git a/variant-coverage/FunctionAttribute.ts b/variant-coverage/FunctionAttribute.ts index ad31eebb1..892589219 100644 --- a/variant-coverage/FunctionAttribute.ts +++ b/variant-coverage/FunctionAttribute.ts @@ -8,6 +8,7 @@ export function checkFunctionAttributeVariant( if (variant instanceof TerminalNode) return; if (variant instanceof ast.ModifierInvocation) return; if (variant instanceof ast.OverrideSpecifier) return; - /* c8 ignore next 2 */ + /* c8 ignore next 3 */ const _exhaustiveCheck: never = variant; + return _exhaustiveCheck; } diff --git a/variant-coverage/ImportClause.ts b/variant-coverage/ImportClause.ts index e73c338c3..4d736be3f 100644 --- a/variant-coverage/ImportClause.ts +++ b/variant-coverage/ImportClause.ts @@ -7,6 +7,7 @@ export function checkImportClauseVariant( if (variant instanceof ast.PathImport) return; if (variant instanceof ast.NamedImport) return; if (variant instanceof ast.ImportDeconstruction) return; - /* c8 ignore next 2 */ + /* c8 ignore next 3 */ const _exhaustiveCheck: never = variant; + return _exhaustiveCheck; } diff --git a/variant-coverage/MappingKeyType.ts b/variant-coverage/MappingKeyType.ts index dd151e410..6a84459ed 100644 --- a/variant-coverage/MappingKeyType.ts +++ b/variant-coverage/MappingKeyType.ts @@ -6,6 +6,7 @@ export function checkMappingKeyTypeVariant( ): void { if (variant instanceof ast.IdentifierPath) return; if (variant instanceof ast.ElementaryType) return; - /* c8 ignore next 2 */ + /* c8 ignore next 3 */ const _exhaustiveCheck: never = variant; + return _exhaustiveCheck; } diff --git a/variant-coverage/Pragma.ts b/variant-coverage/Pragma.ts index ba9fbfd25..6f56e8752 100644 --- a/variant-coverage/Pragma.ts +++ b/variant-coverage/Pragma.ts @@ -5,6 +5,7 @@ export function checkPragmaVariant(variant: ast.Pragma['variant']): void { if (variant instanceof ast.AbicoderPragma) return; if (variant instanceof ast.ExperimentalPragma) return; if (variant instanceof ast.VersionPragma) return; - /* c8 ignore next 2 */ + /* c8 ignore next 3 */ const _exhaustiveCheck: never = variant; + return _exhaustiveCheck; } diff --git a/variant-coverage/ReceiveFunctionAttribute.ts b/variant-coverage/ReceiveFunctionAttribute.ts index 7ff3090a3..2a3b32b76 100644 --- a/variant-coverage/ReceiveFunctionAttribute.ts +++ b/variant-coverage/ReceiveFunctionAttribute.ts @@ -9,6 +9,7 @@ export function checkReceiveFunctionAttributeVariant( if (variant instanceof TerminalNode) return; if (variant instanceof ast.ModifierInvocation) return; if (variant instanceof ast.OverrideSpecifier) return; - /* c8 ignore next 2 */ + /* c8 ignore next 3 */ const _exhaustiveCheck: never = variant; + return _exhaustiveCheck; } diff --git a/variant-coverage/SourceUnitMember.ts b/variant-coverage/SourceUnitMember.ts index 57235613d..c68562bd9 100644 --- a/variant-coverage/SourceUnitMember.ts +++ b/variant-coverage/SourceUnitMember.ts @@ -17,6 +17,7 @@ export function checkSourceUnitMemberVariant( if (variant instanceof ast.UserDefinedValueTypeDefinition) return; if (variant instanceof ast.UsingDirective) return; if (variant instanceof ast.EventDefinition) return; - /* c8 ignore next 2 */ + /* c8 ignore next 3 */ const _exhaustiveCheck: never = variant; + return _exhaustiveCheck; } diff --git a/variant-coverage/Statement.ts b/variant-coverage/Statement.ts index ea8be26c9..2e6c338be 100644 --- a/variant-coverage/Statement.ts +++ b/variant-coverage/Statement.ts @@ -19,6 +19,7 @@ export function checkStatementVariant(variant: ast.Statement['variant']): void { if (variant instanceof ast.AssemblyStatement) return; if (variant instanceof ast.Block) return; if (variant instanceof ast.UncheckedBlock) return; - /* c8 ignore next 2 */ + /* c8 ignore next 3 */ const _exhaustiveCheck: never = variant; + return _exhaustiveCheck; } diff --git a/variant-coverage/StringExpression.ts b/variant-coverage/StringExpression.ts index 0b6cec709..2785d8b93 100644 --- a/variant-coverage/StringExpression.ts +++ b/variant-coverage/StringExpression.ts @@ -9,6 +9,7 @@ export function checkStringExpressionVariant( if (variant instanceof ast.HexStringLiteral) return; if (variant instanceof ast.HexStringLiterals) return; if (variant instanceof ast.UnicodeStringLiterals) return; - /* c8 ignore next 2 */ + /* c8 ignore next 3 */ const _exhaustiveCheck: never = variant; + return _exhaustiveCheck; } diff --git a/variant-coverage/TupleMember.ts b/variant-coverage/TupleMember.ts index f01e00b33..f2dfe4522 100644 --- a/variant-coverage/TupleMember.ts +++ b/variant-coverage/TupleMember.ts @@ -6,6 +6,7 @@ export function checkTupleMemberVariant( ): void { if (variant instanceof ast.TypedTupleMember) return; if (variant instanceof ast.UntypedTupleMember) return; - /* c8 ignore next 2 */ + /* c8 ignore next 3 */ const _exhaustiveCheck: never = variant; + return _exhaustiveCheck; } diff --git a/variant-coverage/TypeName.ts b/variant-coverage/TypeName.ts index 257770e72..685a16f16 100644 --- a/variant-coverage/TypeName.ts +++ b/variant-coverage/TypeName.ts @@ -7,6 +7,7 @@ export function checkTypeNameVariant(variant: ast.TypeName['variant']): void { if (variant instanceof ast.MappingType) return; if (variant instanceof ast.IdentifierPath) return; if (variant instanceof ast.ElementaryType) return; - /* c8 ignore next 2 */ + /* c8 ignore next 3 */ const _exhaustiveCheck: never = variant; + return _exhaustiveCheck; } diff --git a/variant-coverage/UsingClause.ts b/variant-coverage/UsingClause.ts index f45f0ba78..0ca2ee40a 100644 --- a/variant-coverage/UsingClause.ts +++ b/variant-coverage/UsingClause.ts @@ -6,6 +6,7 @@ export function checkUsingClauseVariant( ): void { if (variant instanceof ast.IdentifierPath) return; if (variant instanceof ast.UsingDeconstruction) return; - /* c8 ignore next 2 */ + /* c8 ignore next 3 */ const _exhaustiveCheck: never = variant; + return _exhaustiveCheck; } diff --git a/variant-coverage/VersionExpression.ts b/variant-coverage/VersionExpression.ts index 4de8195c6..982cf4f13 100644 --- a/variant-coverage/VersionExpression.ts +++ b/variant-coverage/VersionExpression.ts @@ -6,6 +6,7 @@ export function checkVersionExpressionVariant( ): void { if (variant instanceof ast.VersionRange) return; if (variant instanceof ast.VersionTerm) return; - /* c8 ignore next 2 */ + /* c8 ignore next 3 */ const _exhaustiveCheck: never = variant; + return _exhaustiveCheck; } diff --git a/variant-coverage/YulExpression.ts b/variant-coverage/YulExpression.ts index 0a148347e..c545eafe0 100644 --- a/variant-coverage/YulExpression.ts +++ b/variant-coverage/YulExpression.ts @@ -7,6 +7,7 @@ export function checkYulExpressionVariant( if (variant instanceof ast.YulFunctionCallExpression) return; if (variant instanceof ast.YulLiteral) return; if (variant instanceof ast.YulPath) return; - /* c8 ignore next 2 */ + /* c8 ignore next 3 */ const _exhaustiveCheck: never = variant; + return _exhaustiveCheck; } diff --git a/variant-coverage/YulLiteral.ts b/variant-coverage/YulLiteral.ts index 8a5b2c5be..1a3b6160d 100644 --- a/variant-coverage/YulLiteral.ts +++ b/variant-coverage/YulLiteral.ts @@ -8,6 +8,7 @@ export function checkYulLiteralVariant( if (variant instanceof TerminalNode) return; if (variant instanceof ast.HexStringLiteral) return; if (variant instanceof ast.StringLiteral) return; - /* c8 ignore next 2 */ + /* c8 ignore next 3 */ const _exhaustiveCheck: never = variant; + return _exhaustiveCheck; } diff --git a/variant-coverage/YulStatement.ts b/variant-coverage/YulStatement.ts index e0464f394..c5f3f92d9 100644 --- a/variant-coverage/YulStatement.ts +++ b/variant-coverage/YulStatement.ts @@ -17,6 +17,7 @@ export function checkYulStatementVariant( if (variant instanceof ast.YulContinueStatement) return; if (variant instanceof ast.YulLabel) return; if (variant instanceof ast.YulExpression) return; - /* c8 ignore next 2 */ + /* c8 ignore next 3 */ const _exhaustiveCheck: never = variant; + return _exhaustiveCheck; } diff --git a/variant-coverage/YulSwitchCase.ts b/variant-coverage/YulSwitchCase.ts index 2bf005cdc..e5d1ee148 100644 --- a/variant-coverage/YulSwitchCase.ts +++ b/variant-coverage/YulSwitchCase.ts @@ -6,6 +6,7 @@ export function checkYulSwitchCaseVariant( ): void { if (variant instanceof ast.YulDefaultCase) return; if (variant instanceof ast.YulValueCase) return; - /* c8 ignore next 2 */ + /* c8 ignore next 3 */ const _exhaustiveCheck: never = variant; + return _exhaustiveCheck; }