Wachtpuntpoort over de AST, en de laatste bewezen rode tests om (#1911) #1915
No reviewers
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck!1915
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/wachtpunt-schuld"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Vervolg op #1912. Ruimt de drie punten op die daar bewust bleven staan.
De derde blinde vlek in de poort
#1912 dichtte er twee (het typeargument, de reikwijdte) en liet de derde staan, met vermelding in CHECKS.md: een wachtpunt in een hulp die vánuit
runAsyncwordt aangeroepen staat er niet lexicaal in.callout_reveal_test._pumpOverlayhad precies die vorm en is nooit gezien.De meting loopt nu over de AST (
analyzer, zoalscheck_method_lengthal deed), met een call-graph binnen het bestand. Bijvangst: commentaar en stringliteralen vallen vanzelf buiten de meting, dus_withoutLineComments,_withoutTripleQuoteden_callScopekonden weg — en daarmee het risico dat de poort over zijn eigen uitleg valt.Op de huidige boom vindt de AST exact dezelfde verzameling als de tekstversie. Er staan geen omweg-gevallen meer in. Dit is dus preventie, geen nieuwe vondst — en dat is de eerlijke samenvatting.
Eén ding erbij: een bestand dat niet parseert wordt nu gemeld in plaats van overgeslagen. "Stil niets meten" is precies wat deze poort zes weken onbruikbaar maakte.
De bewezen rode schuld
export_dialog_pdf_end_to_end_testendocument_editor_screen_testzijn om. Twee van die vier wachtpunten bleken bij nader inzien al pollussen met een afbreekvoorwaarde — de poort ziet dat verschil niet en boekte ze onterecht als gok. Ze zijn nupumpUntilin plaats van met de hand geschreven, wat ook een leesbare faalmelding oplevert in plaats van stil doorlopen naar "geen bestand".De derde is de interessante. De test die vijf keer omviel (taken 3421, 3433, 3439, 3448, 3480) faalde op iets wat geen enkele poort ziet: twee kale
pump()-frames en dan toetsen of een asynchrone terugval al gebeurd was — een gok in frames in plaats van in wandelklok. Die wacht nu op de uitkomst. Dat de poort die vorm niet dekt staat als beperking in CHECKS.md; ik heb er geen poort omheen gebouwd omdat ik er één geval van heb en niet weet hoe breed het is.Daarmee draagt geen enkel bestand dat ooit rood stond nog een gok. Basislijn 24 → 22 bestanden, 32 → 28 wachtpunten; alle resterende zijn nog niet rood gezien.
Getoetst
make checkvolledig groen (suite, dekkingsvloer, per-bestandsvloer, golden).test/fixed_delay_ratchet_test.dartuitgebreid van 7 naar 10 gevallen; de drie nieuwe dekken de omweg via een hulp, de omweg áchter een hulp, en een hulp die niemand vanuitrunAsyncaanroept (mag níet tellen).