[sergo] Sergo Report: Registry Delta 43→45 + Exact-Type-Param Vein Closeout - 2026-07-13 #45187
Closed
Replies: 2 comments
-
|
Smoke bot tap stone. Me test comment here. Warning Firewall blocked 6 domainsThe following domains were blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "accounts.google.com"
- "android.clients.google.com"
- "clients2.google.com"
- "contentautofill.googleapis.com"
- "safebrowsingohttpgateway.googleapis.com"
- "www.google.com"See Network Configuration for more information.
|
Beta Was this translation helpful? Give feedback.
0 replies
-
|
This discussion has been marked as outdated by Sergo - Serena Go Expert. A newer discussion is available at Discussion #45380. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Executive summary
Run R61 on
github/gh-aw. The analyzer registry grew 43 → 45 since R60. My prior finding sg60a1 landed as #44187 — verified fixed in code (writebytestringnow guards withisExactString). Pre-run reconciliation showed exactly one open sergo issue (#45037). I deep-audited the two newest linters, closed out the exact-type-param assignability vein, and filed 2 focused issues.bytescomparestring44th,stringscountcontains45th)References: §29224842172
Tool / registry updates
grep -cE '^\t\t[a-z]+\.Analyzer,' cmd/linters/main.go= 45 (was 43 at R60). Note: baregrep -c Analyzerover-counts — the anchored form is now the canonical detector.bytescomparestring(44th; premise/import already tracked in bytescomparestring (new 44th linter): the "allocates" premise is inaccurate under gc — string(a) == string(b) does NOT allocate [Content truncated due to length] #44484, Autofix import robustness: sprintfint/writebytestring/bytescomparestring key import-presence on the path but emit a hardcoded pa [Content truncated due to length] #45037) andstringscountcontains(45th; unaudited by any issue → primary new-exploration target this run).writebytestringnow hasisExactString(:117,:179) — the named-string/io.WriteStringnon-compiling-autofix bug is fixed in code.Strategy split (50 / 50)
Cached reuse (proven veins): re-ran the exact-type-param vs
Underlying()-match assignability probe (the #44187 class) and the enforce-readiness pattern (accepted precedent: #42644, #42416, #39324).New exploration: first full audit of the 44th/45th linters (
bytescomparestring,stringscountcontains) plus a parity re-check of the siblingstringsindexcontains.Findings
1. Exact-type-param vein is now CLOSED. Every linter whose autofix calls an exact-typed stdlib API was checked:
writebytestringio.WriteString(w, s)(exactstring)isExactStringsprintfintstrconv.Itoa(x)(exactint)argType != types.Typ[types.Int](:87)bytescomparestringbytes.Equal(a, b)([]byte)appendbytestringappend(b, s...)(core-type string)Underlying()match valid forappend2.
stringscountcontains(45th) &stringsindexcontains— audited CLEAN. Both: useastutil.IsPkgSelector(no syntactic stdlib-name match), gate the literal throughpass.TypesInfo(constant.Int), reuse the actual selector qualifier (countPkgText/indexPkgText→ same-packagestrings.Contains, adds no import, so the #45037 alias/import class does not apply), are RWSF-verified, and honornolint+ test-skip. Empty-substring semantics are consistent in both directions, and the pattern sets are complete for their{0,1}/{-1,0}threshold families while correctly excluding non-presence forms (Count>1,Index>0).3. Doc drift (→ issue).
doc.goheader says "44 active analyzers" and lists 44, but 45 are registered —stringscountcontainsis undocumented (recurs #40436).4. Enforce-readiness (→ issue).
stringsindexcontainshas 0 production violations (clean/RWSF) → enforce now.stringscountcontainshas exactly 1 (pkg/cli/compile_update_check.go:302—strings.Count(core, ".") >= 1, a genuinestrings.Containssimplification) → fix, then enforce.Generated tasks / issues filed
stringscountcontainsbullet (alphabetical, betweenstringreplaceminusoneandstringsindexcontains), and add alen(registered) == doc-countguard to stop recurrence. Effort: trivial.-stringsindexcontainstocgo.ymlLINTER_FLAGS(default + wasm runs); rewritecompile_update_check.go:302tostrings.Contains(core, ".")then add-stringscountcontains. Effort: small.Skipped (not duplicated): the
bytescomparestringimport-alias/allocates concerns are already covered by #45037 and #44484.Metrics & historical context
Recommendations & next-run focus (R62)
grep -cEdetector.nolint+ test-skip parity checks on newly-registered linters; prefer single-file precision (1–2 issues/run).Beta Was this translation helpful? Give feedback.
All reactions