GPT-5.5 vs Qwen3.7 Max for code review
GPT-5.5 wins, 93–88
Same 12 code review tasks, marked blind by three rival labs. GPT-5.5 took 7 tasks, Qwen3.7 Max took 0, 5 tied. Tested 18 Aug 2026.
Where they differed most
Review this function. Context you can rely on: `page` is 1-based — the public API docs promise that page=1 returns the first page; `items` is always an array and may be empty; `perPage` is taken straight from a query string. function pageOf(items, page, perPage) { const start = page * perPage; const rows = items.slice(start, start + perPage); const lastPage = Math.ceil(items.length / perPage); return { rows, total: items.length, lastPage, hasNext: page <= lastPage }; } List the real defects, most damaging first, and for each one say what a user of the API would actually SEE — not what the code does, what they notice. Then give the corrected function. Do not list style preferences as defects.
Real defects, most damaging first: 1. **`perPage` is a query-string value but is used without numeric validation/conversion.** What API users see: `?perPage=10` may not behave like “10 per page”; pages can contain far too many rows. Bad values like `perPage=0`, empty string, or `abc` can produce empty pages, nonsensical `lastPage`, or pagination that appears to have a next page forever. 2. **The start offset is off by one page.** The API promises `page=1` is the first page, but `start` is calculated as `page * perPage`. What us…
## Defects ### 1. Off-by-one in start index — every page is shifted forward `start = page * perPage` treats `page` as 0-based. Since the API promises `page=1` is the first page, the calculation skips an entire page of items. **What the user sees:** Page 1 is missing the first N items. If `perPage` is 10, the first result they see is item #11. Every subsequent page is also one page ahead of what they expect. The very last page of data is never reachable. ### 2. String concatenation in the slice end — pages return too many items `perPage` ar…
Task by task
| Task | GPT-5.5 | Qwen3.7 Max |
|---|---|---|
| The pagination that skips page one | 9 | 8 |
| Nothing wrong with it | 10 | 9 |
| Three things wrong in six lines | 10 | 9 |
| Two customers, one last item | 9 | 9 |
| Rank by what breaks | 9 | 9 |
| The review, as JSON | 9 | 8 |
| Slow is not the same as wrong | 9 | 9 |
| Overdue at one in the morning | 9 | 8 |
| Write only the comment | 10 | 9 |
| The complaint that is not a defect | 9 | 9 |
| Right, and unusable | 10 | 9 |
| Refuse the rubber stamp | 9 | 9 |
Full receipts: GPT-5.5, Qwen3.7 Max · judges claude-sonnet-5, gemini-3.1-pro-preview, grok-4.5
Questions people ask
Which is better for code review: GPT-5.5 or Qwen3.7 Max?
GPT-5.5 — it scored 93/100 against 88/100 on our 12-task code review suite, winning 7 tasks to 0 with 5 tied. Every answer was marked blind by three judges from three rival AI labs.
How was this tested?
Both models answered the identical published code review tasks. Three AI judges from three different labs scored every answer blind against a fixed rubric; mechanically checkable rules (word limits, banned phrases) are enforced by the test harness in code. The raw outputs and judge verdicts are downloadable.
More code review head-to-heads: GPT-5.5 vs GPT-5.6 Sol · GPT-5.6 Sol vs Qwen3.7 Max · GPT-5.5 vs GPT-5.6 Luna · GPT-5.6 Luna vs Qwen3.7 Max · GPT-5.5 vs GPT-5.6 Terra · GPT-5.6 Terra vs Qwen3.7 Max
Full ranking: Best AI for code review · model pages: GPT-5.5, Qwen3.7 Max