A function without a body is fn sig { }, not fn sig; (3 specs now generate) - #4248
Merged
Merged
Conversation
Three specs declared functions as `pub fn name(args) -> T;` and t27c refused to
generate them at all ("Expected LBrace, got Semicolon"). A bodyless declaration
is not a t27 construct: it is not defined in docs/ or CANON.md, and none of the 15
specs in the corpus that use it generate. The empty body is, and it means the same
thing -- declared, not yet implemented -- which t27c lowers to
`@panic("not yet implemented")`.
specs/numeric/formats.t27 6 declarations
specs/ternary/packed_trit.t27 7 declarations
specs/vsa/packed_vsa.t27 8 declarations
Only the terminating `;` becomes ` { }`. No signature changes.
Measured over the whole corpus with a t27c built from master, before and after:
NOGEN 89 -> 86 (-3: these three now generate)
NOCOMPILE 654 -> 657 (+3: they reach Zig, where each has a further defect)
PASS 189 -> 189 (+0)
specs that stopped passing: 0
So this does not raise the pass count, and is not claimed to. Each of the three
now fails with a specific Zig error instead of not generating at all:
formats duplicate struct member name 'result'
packed_trit use of undeclared identifier 'trits'
packed_vsa variables must be initialized
That is concrete work a bee can do, and the empty bodies are food for the feeder.
Only the three files that went from not generating to generating are included.
Seven other bodyless-declaration specs moved to a deeper, unrelated parse error,
and the other five are claimed by open issues whose bee PRs already replace each
declaration with a real body -- so they are left alone.
The before and after runs were taken on master a few merges apart (21e58ef and
d898363). The shifts are exactly +/-3 and nothing stopped passing, which matches
these three files; it is not a strictly isolated measurement.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
gHashTag
enabled auto-merge (squash)
September 17, 2026 10:06
This was referenced Sep 17, 2026
This was referenced Sep 17, 2026
Merged
Contributor
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
Contributor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refs #4247
Three specs declared functions as
pub fn name(args) -> T;, andt27crefused to generate them. A bodyless declaration is not a t27 construct — undefined indocs/andCANON.md, and none of the 15 specs using it generate. The empty bodyfn sig { }is, with the same meaning: declared, not yet implemented.Only the terminating
;becomes{ }. No signature changes.Measured over the whole corpus
t27c genfails (NOGEN)This does not raise the pass count, and is not claimed to. The three move one layer: from not generating at all, to generating and failing with a specific Zig error a bee can fix —
numeric/formatsresultternary/packed_trittritsvsa/packed_vsa— and their empty bodies become food for the feeder.
The before/after runs were a few master merges apart; shifts of exactly ±3 with nothing lost match these files, but the measurement is not strictly isolated.
🤖 Generated with Claude Code