From fdc679fb236c01ecb5bd0eca9216ed79427cf2c5 Mon Sep 17 00:00:00 2001 From: CrackTC Date: Wed, 4 Feb 2026 16:14:17 +0800 Subject: [PATCH] fix: support python @classmethod decorator --- .../analyzer/python/common/python-analyzer.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/engine/analyzer/python/common/python-analyzer.ts b/src/engine/analyzer/python/common/python-analyzer.ts index 427ad6df..c1fba6e0 100644 --- a/src/engine/analyzer/python/common/python-analyzer.ts +++ b/src/engine/analyzer/python/common/python-analyzer.ts @@ -246,6 +246,21 @@ class PythonAnalyzer extends (Analyzer as any) { return SymbolValue(new_node) } + /** + * + * @param fclos + * @param argvalues + * @param state + * @param node + * @param scope + */ + executeSingleCall(fclos: any, argvalues: any, state: any, node: any, scope: any) { + if (fclos.decorators?.some((d: any) => d.name === 'classmethod') && argvalues[0]?.vtype === 'undefine') { + argvalues[0] = fclos._this + } + return super.executeSingleCall(fclos, argvalues, state, node, scope) + } + /** * * @param scope