Repository navigation
mutation: the last four HOLEs, x/text 0.43.0, golangci-lint v2.15.0 - #197
Conversation
…t window The last four HOLEs of the Sunday mutation runs were all about the width of a menu, and none of them was a guard looking in the wrong place for the reason the earlier analysis gave. A field in the form's grid is as wide as the columns it takes, not as wide as it asks. At the width the window opens at, every menu is a column wide whatever it asks for, so taking the floor out of parts.menuWidth changed nothing the guards could see. The floor only shows in the narrowest window the window allows, where it decides how many columns a menu takes: without it, the damage menu on the single batch screen falls from two columns (265.91 px) to one (124.96), beside boxes of 253.91. inEveryMenuLayout lays every screen out with every section open and at both widths, and asserts both states rather than assuming them: a section that stays shut when its head is pressed, or content that did not take the width it was resized to, stops the guard. The guard about the toolkit's own words also asks whether the width a menu asks for covers the toolkit's minimum - laid out, the menu without its floor was still given one column, 0.73 px wider than the words, so the layout alone could never prove it. The two entries that measured the placeholder in menuWidth are retired. Since NewChooser gives every menu the window's placeholder from the start, measuring it widens every format menu at once (154.73 to 180.23 px), which is one width everywhere. Their guards are listed as not proven by mutation, and the cause they were written for is held at the source by TestAMenuIsOneWidthBeforeAndAfterItIsDrawn. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Dependabot pull request (#196) was red on one guard: the notices file writes the version by hand and still said 0.42.0. Between the two copies in the module cache only unicode/bidi and secure/bidirule changed. Neither binary links either of them - go list -deps of cmd/tfg and cmd/tfg-gui reaches cases, language, transform and unicode/norm of this module, all four unchanged - so no generated byte and no verdict about two names colliding can move. The mutation entry that names the version in the notices moves with it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Reported by the weekly tool versions job. v2.15.0 refuses exhaustive.ignore-enum-types in config verify, which CI runs before the linter, so the setting is ignore-types now, a list of the same patterns. Checked rather than assumed: without it the linter reports seven switches on fyne.KeyName in internal/gui/parts, with it none. A full run on the tree reports no issues. The two mutation entries that name the pinned command move with it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📜 Recent review details
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
staticcheck (SA1019) refuses test.WindowlessCanvas, which fyne v2.8.2 keeps only as a deprecated alias of driver/software.WindowlessCanvas - the same type under its current name. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Three things in one pull request, one commit each.
The last four HOLEs of the Sunday mutation run (2026-10-18: 1782 entries, 1725 ok, 4 HOLE, 0 BROKEN, 0 SKIP). All four were about the width of a menu.
parts.menuWidthchanged nothing a guard could see. The floor only shows in the narrowest window, where it decides how many columns a menu takes: without it, the damage menu on the single batch screen falls from 265.91 px to 124.96, beside boxes of 253.91.inEveryMenuLayoutlays every screen out with every section open, at the opening width and at the narrowest one. It asserts both states instead of assuming them. The guard about the toolkit's words also asks whether the width a menu asks for covers the toolkit's minimum. Laid out, the menu without its floor was still 0.73 px wider than the words.menuWidth. SinceNewChoosergives every menu the window's placeholder from the start, that change widens every format menu at once (154.73 to 180.23 px), which is still one width everywhere. Their two guards are listed as not proven by mutation. The cause is held at the source byTestAMenuIsOneWidthBeforeAndAfterItIsDrawn.golang.org/x/text0.43.0, in place of #196, which was red only on the notices file. Onlyunicode/bidiandsecure/bidirulechanged between the two module copies, and neither binary links them, so no generated byte can move.golangci-lint v2.15.0, from the weekly tool versions job. v2.15.0 refuses
exhaustive.ignore-enum-typesinconfig verify, so the setting is nowignore-types. Checked: without the setting the linter reports seven switches onfyne.KeyName, with it none. A full run reports no issues.The merge needs the browser, because
.github/workflows/ci.ymlchanges.🤖 Generated with Claude Code
Summary by CodeRabbit