Skip to content

Commit 6bb3eb3

Browse files
Restructuring to assert_never
1 parent 4230807 commit 6bb3eb3

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

src/replit_river/codegen/typing.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from dataclasses import dataclass
2-
from typing import NewType
2+
from typing import NewType, assert_never
33

44
TypeName = NewType("TypeName", str)
55
ModuleName = NewType("ModuleName", str)
@@ -45,8 +45,10 @@ def render_type_expr(value: TypeExpression) -> str:
4545
return f"Literal[{repr(inner)}]"
4646
case UnionTypeExpr(inner):
4747
return " | ".join(render_type_expr(x) for x in inner)
48+
case str(name):
49+
return TypeName(name)
4850
case other:
49-
return other
51+
assert_never(other)
5052

5153

5254
def extract_inner_type(value: TypeExpression) -> TypeName:
@@ -61,8 +63,10 @@ def extract_inner_type(value: TypeExpression) -> TypeName:
6163
raise ValueError(
6264
f"Attempting to extract from a union, currently not possible: {value}"
6365
)
66+
case str(name):
67+
return TypeName(name)
6468
case other:
65-
return other
69+
assert_never(other)
6670

6771

6872
def ensure_literal_type(value: TypeExpression) -> TypeName:
@@ -83,5 +87,7 @@ def ensure_literal_type(value: TypeExpression) -> TypeName:
8387
raise ValueError(
8488
f"Unexpected expression when expecting a type name: {value}"
8589
)
90+
case str(name):
91+
return TypeName(name)
8692
case other:
87-
return other
93+
assert_never(other)

0 commit comments

Comments
 (0)