Skip to content

fix(opy): converge source failure frontiers - #168

Merged
Teakowa merged 2 commits into
mainfrom
codex/issue-167-source-frontier
Sep 2, 2026
Merged

fix(opy): converge source failure frontiers#168
Teakowa merged 2 commits into
mainfrom
codex/issue-167-source-frontier

Conversation

@e54-bot

@e54-bot e54-bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Resolve the remaining source-frontier mismatches identified by Resolve residual source failure-frontier mismatches after #162 #167.
  • Add source constant declarations, ordinary @name annotations, multiline comprehension handling, JSONC settings expressions/comments, and the required catalog-backed receiver members.
  • Preserve semantic diagnostics and provenance so the 6v6 fixture reaches unknown-member and issue-29 reaches duplicate-rule-name, matching the pinned oracle categories.
  • Update conformance expectations, focused regression tests, manifest probes, and language-support documentation.

Validation

  • cargo fmt --all -- --check
  • cargo clippy --locked --workspace --all-targets --all-features -- -D warnings
  • cargo test --locked --workspace --all-targets --all-features
  • 35 compatibility tests and 43 manifest probes
  • Full conformance: 46 match / 15 divergence / 2 inconclusive; both Resolve residual source failure-frontier mismatches after #162 #167 target fixtures match their pinned semantic frontiers.

Fixes #167

Reach the pinned semantic frontiers for source constants, annotations, settings, comprehensions, and receiver members.

Fixes #167

@Teakowa Teakowa left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please address the inline finding.

));
}
cst::SettingsNode::String {
name: String::new(),

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Major — This fallback classifies an unquoted OPY settings expression as SettingsNode::String. That is not just an opaque carrier: the compiler maps HIR String directly to workshop_rs::settings::SettingsNode::String, so a valid expression-valued setting that reaches backend lowering is emitted as a literal string instead of preserving/evaluating the expression. workshop-rs already distinguishes raw settings specifically to avoid fabricating a type. Preserve this as an explicit non-literal/unsupported expression (and fail lowering if necessary) rather than representing it as String.

Keep unquoted settings expressions distinct from string literals through the HIR and workshop-rs conversion.

Fixes #167

@Teakowa Teakowa left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Teakowa
Teakowa merged commit 2fb9870 into main Sep 2, 2026
5 checks passed
@Teakowa
Teakowa deleted the codex/issue-167-source-frontier branch September 2, 2026 11:21
This was referenced Sep 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Resolve residual source failure-frontier mismatches after #162

2 participants