可用的回归测试通过的标准版本

This commit is contained in:
2026-06-18 00:39:43 +08:00
parent bffb0cb6b7
commit e02c867edf
365 changed files with 22562 additions and 24532 deletions

View File

@@ -2,7 +2,7 @@ from __future__ import annotations
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from lib.core.translator import Translator
from lib.core.Handles.HandlesBase import BaseHandle, CTypeInfo
from lib.core.Handles.HandlesBase import BaseHandle, CTypeInfo, FuncMeta
from lib.core.SymbolNode import SymbolNode
from lib.includes import t
import ast
@@ -345,6 +345,12 @@ class ClassHandle(BaseHandle):
if isinstance(item, ast.FunctionDef):
MethodName = item.name
FullMethodName = f"{ClassName}.{MethodName}"
# property setter/deleter 使用不同的函数名后缀
item_meta = self.Trans.FunctionHandler._ExtractFuncMeta(item.decorator_list)
if FuncMeta.PROPERTY_SETTER in item_meta:
FullMethodName = FullMethodName + '$set'
elif FuncMeta.PROPERTY_DELETER in item_meta:
FullMethodName = FullMethodName + '$del'
if FullMethodName not in Gen.class_methods[ClassName]:
Gen.class_methods[ClassName].append(FullMethodName)
Gen.register_method(ClassName, FullMethodName)
@@ -781,8 +787,8 @@ class ClassHandle(BaseHandle):
EnumTypeInfo.BaseType = t.CEnum(ClassName)
EnumTypeInfo.IsEnum = True
self.Trans.SymbolTable[ClassName] = EnumTypeInfo
from lib.core.export_table import EnumMember as ExportEnumMember
enum_export = self.Trans.ExportTable.add_enum(
from lib.core.Exportable import EnumMember as ExportEnumMember
enum_export = self.Trans.Exportable.add_enum(
name=ClassName,
lineno=Node.lineno,
is_public=True