diff --git a/lib/core/Handles/HandlesExprCall.py b/lib/core/Handles/HandlesExprCall.py index 892ff57..a7c4f73 100644 --- a/lib/core/Handles/HandlesExprCall.py +++ b/lib/core/Handles/HandlesExprCall.py @@ -3018,6 +3018,13 @@ class ExprCallHandle(BaseHandle): spec_cache = getattr(Gen, '_generic_class_specializations', {}) cached = spec_cache.get(spec_key) if not isinstance(cached, tuple) or len(cached) < 2: + # 缓存中还没有该特化:直接从头生成完整特化(方法体随类特化一起产出) + try: + self.Trans.ClassHandler._specialize_generic_class( + base_name, ClassName[len(base_name) + 1:-1].split(']['), + Gen, declare_only=False) + except Exception: + pass return cached_name: str = cached[0] was_declare_only: bool = cached[1]