可用的回归测试通过的标准版本
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user