From 33a25357531b9ac9435f0bb784753f0b7a54798e Mon Sep 17 00:00:00 2001 From: TheNuclearNexus <39636175+TheNuclearNexus@users.noreply.github.com> Date: Thu, 30 Jan 2025 18:59:33 -0500 Subject: [PATCH] fix(language_server): remove reliance on `*` unpacking within types --- language_server/server/indexing.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/language_server/server/indexing.py b/language_server/server/indexing.py index e97af16..675efed 100644 --- a/language_server/server/indexing.py +++ b/language_server/server/indexing.py @@ -3,7 +3,7 @@ import inspect import logging import types -from typing import Any, Generic, Optional, TypeVar, Union, cast, get_origin +from typing import Any, Generic, Optional, TypeVar, Union, Unpack, cast, get_origin import typing from beet.core.utils import extra_field @@ -44,14 +44,17 @@ def node_to_types(node: AstNode): - nodes = [] + types = [] for n in node.walk(): if isinstance(n, AstExpressionBinary) and n.operator == "|": continue - nodes.append(n) + annotation = expression_to_annotation(n) - return Union[*nodes] + if annotation is not UNKNOWN_TYPE: + types.append(annotation) + + return Union[Unpack[types]] @dataclass(frozen=True, slots=True)