Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ const compat = new FlatCompat({
export default [
{
ignores: [
'variant-coverage/**/*.ts',
'coverage/**/*.js',
'dist/**/*.cjs',
'dist/**/*.js',
Expand Down Expand Up @@ -72,7 +71,7 @@ export default [
sourceType: 'script',

parserOptions: {
project: ['tsconfig.json']
project: ['tsconfig.test.json']
}
},

Expand Down
8 changes: 4 additions & 4 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down Expand Up @@ -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"
},
Expand Down
8 changes: 5 additions & 3 deletions src/slangPrinter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ function hasNodeIgnoreComment({ comments }: StrictAstNode): boolean {
);
}

function ignoreComments(path: AstPath<AstNode>): void {
function ignoreComments(path: AstPath<StrictAstNode>): void {
const node = path.node;
// We ignore anything that is not an object
if (node === null || typeof node !== 'object') return;
Expand All @@ -38,15 +38,17 @@ function ignoreComments(path: AstPath<AstNode>): 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.
const childNode = node[key];
if (typeof childNode === 'object') {
if (Array.isArray(childNode)) {
path.each(ignoreComments, key);
return;
break;
}
path.call(ignoreComments, key);
}
Expand Down
3 changes: 2 additions & 1 deletion tsconfig.json
Original file line number Diff line number Diff line change
@@ -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,
Expand Down
7 changes: 7 additions & 0 deletions tsconfig.test.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"rootDir": "./"
},
"include": ["./src/**/*", "./variant-coverage/**/*"]
}
3 changes: 2 additions & 1 deletion variant-coverage/ArgumentsDeclaration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
3 changes: 2 additions & 1 deletion variant-coverage/ContractMember.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
3 changes: 2 additions & 1 deletion variant-coverage/ContractSpecifier.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
3 changes: 2 additions & 1 deletion variant-coverage/Expression.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
3 changes: 2 additions & 1 deletion variant-coverage/FallbackFunctionAttribute.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
3 changes: 2 additions & 1 deletion variant-coverage/ForStatementInitialization.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
3 changes: 2 additions & 1 deletion variant-coverage/FunctionAttribute.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
3 changes: 2 additions & 1 deletion variant-coverage/ImportClause.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
3 changes: 2 additions & 1 deletion variant-coverage/MappingKeyType.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
3 changes: 2 additions & 1 deletion variant-coverage/Pragma.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
3 changes: 2 additions & 1 deletion variant-coverage/ReceiveFunctionAttribute.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
3 changes: 2 additions & 1 deletion variant-coverage/SourceUnitMember.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
3 changes: 2 additions & 1 deletion variant-coverage/Statement.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
3 changes: 2 additions & 1 deletion variant-coverage/StringExpression.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
3 changes: 2 additions & 1 deletion variant-coverage/TupleMember.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
3 changes: 2 additions & 1 deletion variant-coverage/TypeName.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
3 changes: 2 additions & 1 deletion variant-coverage/UsingClause.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
3 changes: 2 additions & 1 deletion variant-coverage/VersionExpression.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
3 changes: 2 additions & 1 deletion variant-coverage/YulExpression.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
3 changes: 2 additions & 1 deletion variant-coverage/YulLiteral.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
3 changes: 2 additions & 1 deletion variant-coverage/YulStatement.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
3 changes: 2 additions & 1 deletion variant-coverage/YulSwitchCase.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
8 changes: 7 additions & 1 deletion test.config.js → webpack.test.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -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/
}
]
Expand Down