fix: 修复 L1+L3 合并时诊断全部重复 (extend 两次)

- analyze() 里 issues.extend(analyzer.issues) 被调用两次 → 每条诊断重复出现
- 综合测试发现 20 个问题实际应为 11 个; 修复为只 extend 一次
- 新增回归测试 test_no_duplicate_diagnostics; 276 passed
This commit is contained in:
shuiyu67 committed 2026-08-07 02:44:27 +08:00
1 parent 413f66deb8
commit fa29e0339f
2 files changed
+13 -2

No files matched your search

+12
View File
@@ -366,6 +366,18 @@ class TestDataFlow:
fix = d.get("fix", "")
assert "result = None" in fix, fix
def test_no_duplicate_diagnostics(self, pd):
"""L1+L3 合并不得产生重复诊断 (回归: 曾因 extend 两次全部重复)"""
src = ("import os\n"
"from math import *\n"
"def f(flag):\n"
" if flag:\n"
" r = build()\n"
" return r\n")
issues = pd.analyze(src, "t.py")
keys = [(d["code"], d["line"], d["col"]) for d in issues]
assert len(keys) == len(set(keys)), f"存在重复诊断: {keys}"
# ── code_editor 写文件后自动检测集成 ──
class TestAutoDetectIntegration: