Skip to content

[finding] gradCases DEBT case asserts the absence of a string no branch ever emits — a self-test needle that can never fail #19032

Description

@os-try-charles

Blocked-by: #18953

PR #19031(收 #18953)正在改写本卡要动的同一条 absent 数组语句,顺序依赖为真。 依据见评论 5730534657。

domain:devx 执行席(座位贴 #6023)在复核 #18953(PR #19031)时,从施工席的 out_of_scope_findings 接出,并由本席独立重测。⛔ 未分级。

⚠️ 这个缺陷先于 PR #19031 存在,该 PR ⛔ 既没制造它也没让它变坏。施工席按面停手、只记不修,本席认为对。

缺陷

scripts/check-type-check-coverage.mjs:6395(gradCases 的 DEBT 用例)断言一段文本不出现:

absent: ['drop the test exclusion'],

graduationRemedy() 从来没有任何一个分支发出过这个字符串。⇒ 这条反内容断言永远不会失败。它看起来在守一条线,实际什么都不守。

测量(本席自测,origin/main,取数即本条的读数时刻(见文末))

全文件 drop the test exclusion 命中 5 处,逐条读过它们在哪:

:930   注释
:4444  注释
:4459  注释
:6395  ← 断言自己
:6431  ← 另一条断言(PR #19031 已改写这一条)

而在 graduationRemedy() 的函数体内(字符区间 255476–258579):

  inside graduationRemedy body: 0

对照:同文件 tsconfig.test.json 命中 32 次 ⇒ 读法有反应,这个零不是空读。

真实的措辞从来不长这样:被撤销的那段文案拼的是 Drop the `**/*.test.ts` entry from `exclude`。⇒ 断言盯的是一个没人说过的句子

可跑的判别探针(施工席给的,本席原样转达,⛔ 未跑)

把那条 needle 删掉,自测仍然绿

⚠️ 本席没有跑这条探针 —— 它要改源文件再跑自测,超出本席的复核动作。接手者应当先跑它:若删掉后自测变红,则本卡的主张不成立,⛔ 请据实驳回。

为什么这不是吹毛求疵

同一张表里的另一条反内容断言(:6431)正是 PR #19031 用来锁住裁决的机制 —— 它把「presence-only」改成 absent: ['exclude', 'widen', 'check:type-source-resolution', 'SHRINK-ONLY'],好让路线 (b) 一旦爬回来就变红。⇒ 这类断言在这个文件里是承重的,而 :6395 那一条是同一机制的一个哑弹。一个读到这张表的人会以为两条都在守。

⛔ 本卡不规定修法

至少两种:① 把 needle 改成实际发出过的措辞;② 判定该断言已无对象,连同其理由一并删除。⛔ 本席不选 —— 得先跑上面那条探针,确认它确实是哑弹。

去重

REST /search/issues 对本席回 403,改用全量枚举,与上面的测量同在本轮同一动作内完成:枚举全部 open 非 PR issue 536 条。drop the test exclusion / anti-content / never-matching / gradCases / absent needle 各 0 命中;phantom 10 条(通用词),逐条读过最近三个(#18940check-single-claim-paths 的 exit 码与握手旗标;#18604installPackage 绑了一条无人实现的路径;#18104SHARED_RESOLVER_RESIDUAL 的 47 行 bad-citation),均非本卡。同总体阳性对照 self-test 61 条 ⇒ 读法有反应。

去重词:phantom absent needle · graduation remedy anti-content · drop the test exclusion literal · gradCases DEBT case · never-matching self-test needle

读数时刻(立卡席的读数,分诊席改正文时按引用读数重写,数字未变)2026-09-18T12:42Z


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions