From 17ce5a290b7afb856d039fdef637fbe5646fe31a Mon Sep 17 00:00:00 2001 From: Vadim Levin Date: Tue, 11 Nov 2025 19:11:16 +0300 Subject: [PATCH] fix: use export_name as resolved typename for AliasTypeNode Use ctype_name as export name for AliasTypeNode if export name is not explicitly provided. --- .../typing_stubs_generation/nodes/type_node.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/modules/python/src2/typing_stubs_generation/nodes/type_node.py b/modules/python/src2/typing_stubs_generation/nodes/type_node.py index 86bd744a1c..f6ba773654 100644 --- a/modules/python/src2/typing_stubs_generation/nodes/type_node.py +++ b/modules/python/src2/typing_stubs_generation/nodes/type_node.py @@ -274,14 +274,21 @@ class AliasTypeNode(TypeNode): required_modules: Tuple[str, ...] = ()) -> None: super().__init__(ctype_name, required_modules) self.value = value - self._export_name = export_name + # If alias is exported as is - use its ctype_name + if export_name is None: + forbidden_symbols = (":", "*", "&") + assert all(symbol not in ctype_name for symbol in forbidden_symbols), ( + "Failed to create AliasTypeNode without export_name. " + f"'{ctype_name}' should not contain any of {forbidden_symbols}" + ) + self._export_name = ctype_name + else: + self._export_name = export_name self.doc = doc @property def typename(self) -> str: - if self._export_name is not None: - return self._export_name - return self.ctype_name + return self._export_name @property def full_typename(self) -> str: