Skip to content

publish/lint 面对字面量空组合子响亮拒收 —— #5322 拍板单位元后的可选编写期信号(PD #12 形状) #5330

Description

@os-zhuang

#5322 已拍板:运行期空组合子({$and:[]} / {$or:[]} / {$not:{}} / {})统一取布尔单位元归约,service-analytics 两个编译器与五个后端对齐(实施 PR 见 #5322 的分支)。

本单记录拍板时明确保留的可选增强,unassigned,不阻塞任何在途工作:

内容

publish/lint 面(生产端)对字面量空组合子响亮拒收:作者在元数据里手写出 {$or: []} 这类形状时,编写期即报错并给出处方(想表达「零行」应写什么、想表达「无过滤」应省略该键),而不是等运行期按单位元静默求值。

为什么不并入 #5322 的实施 PR

拒收落点在 lint/publish 管线(packages/lint 或 spec 授权门),与 analytics 编译器对齐分属不同包与不同风险面;且「字面量 vs 程序化产物」的判定边界(lint 能看到源码字面量,publish 门只看到值)需要单独设计,不该作为 rider 搭车。

验收方向

  • lint 面:字面量空组合子 → 报错 + 处方;
  • 运行期矩阵(FILTER_LOGIC_CASES 四条)不受影响;
  • 拒收信息与 filter-normalizer 曾有的措辞("An empty combinator has no defensible reading…")的历史关系在 docblock 里交代,避免下一个读者以为运行期还在抛错。

关联:#5322(拍板)、#5239(一致性表四条)、#5240(编写期拒收先例)、#5134($or:[] = 零行的 P0 来源)。

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