|
4 | 4 |
|
5 | 5 | from mypy.nodes import ( |
6 | 6 | Expression, NameExpr, MemberExpr, IndexExpr, RefExpr, TupleExpr, IntExpr, FloatExpr, UnaryExpr, |
7 | | - ComplexExpr, ListExpr, StrExpr, BytesExpr, UnicodeExpr, EllipsisExpr, CallExpr, |
| 7 | + ComplexExpr, ListExpr, StrExpr, BytesExpr, UnicodeExpr, EllipsisExpr, CallExpr, OpExpr, |
8 | 8 | get_member_expr_fullname |
9 | 9 | ) |
10 | 10 | from mypy.fastparse import parse_type_string |
11 | 11 | from mypy.types import ( |
12 | 12 | Type, UnboundType, TypeList, EllipsisType, AnyType, CallableArgument, TypeOfAny, |
13 | | - RawExpressionType, ProperType |
| 13 | + RawExpressionType, ProperType, UnionType |
14 | 14 | ) |
15 | 15 |
|
16 | 16 |
|
@@ -150,5 +150,8 @@ def expr_to_unanalyzed_type(expr: Expression, _parent: Optional[Expression] = No |
150 | 150 | return RawExpressionType(None, 'builtins.complex', line=expr.line, column=expr.column) |
151 | 151 | elif isinstance(expr, EllipsisExpr): |
152 | 152 | return EllipsisType(expr.line) |
| 153 | + elif isinstance(expr, OpExpr) and expr.op == '|': |
| 154 | + return UnionType([expr_to_unanalyzed_type(expr.left), |
| 155 | + expr_to_unanalyzed_type(expr.right)]) |
153 | 156 | else: |
154 | 157 | raise TypeTranslationError() |
0 commit comments