Skip to content

Commit 095afba

Browse files
authored
throwing instead of returning a variable with type never (#1313)
1 parent af3418b commit 095afba

22 files changed

+22
-22
lines changed

src/slang-nodes/ArgumentsDeclaration.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ function createNonterminalVariant(
1818
return new NamedArgumentsDeclaration(variant, options);
1919
}
2020
const exhaustiveCheck: never = variant;
21-
return exhaustiveCheck;
21+
throw new Error(`Unexpected variant: ${JSON.stringify(exhaustiveCheck)}`);
2222
}
2323

2424
export class ArgumentsDeclaration extends SlangNode {

src/slang-nodes/ContractMember.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ function createNonterminalVariant(
6262
return new UserDefinedValueTypeDefinition(variant);
6363
}
6464
const exhaustiveCheck: never = variant;
65-
return exhaustiveCheck;
65+
throw new Error(`Unexpected variant: ${JSON.stringify(exhaustiveCheck)}`);
6666
}
6767

6868
export class ContractMember extends SlangNode {

src/slang-nodes/ContractSpecifier.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ function createNonterminalVariant(
1818
return new StorageLayoutSpecifier(variant, options);
1919
}
2020
const exhaustiveCheck: never = variant;
21-
return exhaustiveCheck;
21+
throw new Error(`Unexpected variant: ${JSON.stringify(exhaustiveCheck)}`);
2222
}
2323

2424
export class ContractSpecifier extends SlangNode {

src/slang-nodes/Expression.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ function createNonterminalVariant(
123123
return extractVariant(new ElementaryType(variant));
124124
}
125125
const exhaustiveCheck: never = variant;
126-
return exhaustiveCheck;
126+
throw new Error(`Unexpected variant: ${JSON.stringify(exhaustiveCheck)}`);
127127
}
128128

129129
export class Expression extends SlangNode {

src/slang-nodes/FallbackFunctionAttribute.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ function createNonterminalVariant(
2222
return new OverrideSpecifier(variant);
2323
}
2424
const exhaustiveCheck: never = variant;
25-
return exhaustiveCheck;
25+
throw new Error(`Unexpected variant: ${JSON.stringify(exhaustiveCheck)}`);
2626
}
2727

2828
export class FallbackFunctionAttribute extends SlangNode {

src/slang-nodes/ForStatementInitialization.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ function createNonterminalVariant(
2929
return new TupleDeconstructionStatement(variant, options);
3030
}
3131
const exhaustiveCheck: never = variant;
32-
return exhaustiveCheck;
32+
throw new Error(`Unexpected variant: ${JSON.stringify(exhaustiveCheck)}`);
3333
}
3434

3535
export class ForStatementInitialization extends SlangNode {

src/slang-nodes/FunctionAttribute.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ function createNonterminalVariant(
2222
return new OverrideSpecifier(variant);
2323
}
2424
const exhaustiveCheck: never = variant;
25-
return exhaustiveCheck;
25+
throw new Error(`Unexpected variant: ${JSON.stringify(exhaustiveCheck)}`);
2626
}
2727

2828
export class FunctionAttribute extends SlangNode {

src/slang-nodes/ImportClause.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ function createNonterminalVariant(
2222
return new ImportDeconstruction(variant, options);
2323
}
2424
const exhaustiveCheck: never = variant;
25-
return exhaustiveCheck;
25+
throw new Error(`Unexpected variant: ${JSON.stringify(exhaustiveCheck)}`);
2626
}
2727

2828
export class ImportClause extends SlangNode {

src/slang-nodes/MappingKeyType.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ function createNonterminalVariant(
1515
return new IdentifierPath(variant);
1616
}
1717
const exhaustiveCheck: never = variant;
18-
return exhaustiveCheck;
18+
throw new Error(`Unexpected variant: ${JSON.stringify(exhaustiveCheck)}`);
1919
}
2020

2121
export class MappingKeyType extends SlangNode {

src/slang-nodes/Pragma.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ function createNonterminalVariant(
2222
return new VersionPragma(variant);
2323
}
2424
const exhaustiveCheck: never = variant;
25-
return exhaustiveCheck;
25+
throw new Error(`Unexpected variant: ${JSON.stringify(exhaustiveCheck)}`);
2626
}
2727

2828
export class Pragma extends SlangNode {

0 commit comments

Comments
 (0)