Files
app-store-optimization/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-18835.patch

39 lines
1.2 KiB
Diff

# sympy__sympy-18835
# Loki Mode Multi-Agent Patch
# Attempts: 1
Based on the architect's analysis, I have enough information to generate the patch. The issue is in the `uniq` function in `sympy/utilities/iterables.py` around lines 2106-2124. The fix needs to track the initial length of sequences and raise `RuntimeError` if the length changes during iteration.
Here's the patch:
--- a/sympy/utilities/iterables.py
+++ b/sympy/utilities/iterables.py
@@ -2106,6 +2106,15 @@ def uniq(seq, result=None):
>>> list(uniq([[1], [2], [1]]))
[[1], [2]]
"""
+ try:
+ n = len(seq)
+ except TypeError:
+ n = None
+
+ def check():
+ if n is not None and len(seq) != n:
+ raise RuntimeError("dictionary changed size during iteration")
+
try:
seen = set()
result = result or []
@@ -2113,6 +2122,7 @@ def uniq(seq, result=None):
if s not in seen:
yield s
seen.add(s)
+ check()
except TypeError:
if s not in result:
yield s
@@ -2120,3 +2130,4 @@ def uniq(seq, result=None):
for s in seq:
if s not in result:
yield s
+ check()