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

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions