Skip to content

feat: support bang as not alias - #31

Merged
tiye merged 2 commits into
feat/program-fingerprintfrom
feat/not-bang-alias
Aug 23, 2026
Merged

feat: support bang as not alias#31
tiye merged 2 commits into
feat/program-fingerprintfrom
feat/not-bang-alias

Conversation

@tiye

@tiye tiye commented Aug 22, 2026

Copy link
Copy Markdown
Member

Summary

  • add RFC 0099 for the strict Bool ! alias
  • lex standalone ! as not while preserving !=
  • cover runtime type errors, dynamic Not bytecode, syntax docs, and five manuals

Validation

  • make check
  • targeted bang alias regression test
  • make docs
  • git diff --check

Copilot AI lite review requested due to automatic review settings August 22, 2026 14:15

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Adds support for using the bang prefix operator (!) as a strict Boolean alias for not in the QuickCoffee language, and updates the language contract + manuals/docs accordingly.

Changes:

  • Lex standalone ! as Token::Not while preserving != as strict inequality.
  • Add RFC 0099 documenting the ! alias contract.
  • Add core tests and update syntax docs + five manuals (and generated HTML) to mention the alias.

Reviewed changes

Copilot reviewed 17 out of 17 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
tests/rfc_core.rs Adds regression coverage for !/!! behavior, runtime error case, and bytecode emission.
src/lexer.rs Changes ! lexing from a hard error to emitting Token::Not (while keeping !=).
RFCs/0099-bang-not-alias.md New RFC defining the strict ! alias semantics and acceptance criteria.
RFCs/0000-project-scope.md Updates project scope RFC index to include RFC 0099.
README.md Updates RFC range reference to include RFC 0099.
manuals/manual.zh-CN.qc Mentions ! as strict not alias and clarifies !=.
manuals/manual.latin.qc Mentions ! as strict not alias and clarifies !=.
manuals/manual.en.qc Mentions ! as strict not alias and clarifies !=.
manuals/manual.devanagari-sa.qc Mentions ! as strict not alias and clarifies !=.
manuals/manual.classical-zh.qc Mentions ! as strict not alias and clarifies !=.
docs/syntax.zh-CN.md Adds syntax note about ! alias, !=, and non-bool runtime errors.
docs/syntax.en.md Adds syntax note about ! alias, !=, and non-bool runtime errors.
docs/manual.zh-CN.html Regenerated manual HTML reflecting the ! alias note.
docs/manual.latin.html Regenerated manual HTML reflecting the ! alias note.
docs/manual.en.html Regenerated manual HTML reflecting the ! alias note.
docs/manual.devanagari-sa.html Regenerated manual HTML reflecting the ! alias note.
docs/manual.classical-zh.html Regenerated manual HTML reflecting the ! alias note.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread tests/rfc_core.rs Outdated
Comment thread src/lexer.rs
Comment thread src/lexer.rs
@tiye
tiye force-pushed the chore/rfc-index-gate branch from 7e3cda8 to 332a0f0 Compare August 22, 2026 18:40
@tiye
tiye force-pushed the feat/not-bang-alias branch from 32b02f0 to 39c7972 Compare August 22, 2026 18:41
@tiye
tiye force-pushed the chore/rfc-index-gate branch from 332a0f0 to 22cd6e9 Compare August 22, 2026 18:46
@tiye
tiye force-pushed the feat/not-bang-alias branch from 39c7972 to 0bca4ee Compare August 22, 2026 18:47
@tiye
tiye force-pushed the chore/rfc-index-gate branch from 22cd6e9 to 7327504 Compare August 23, 2026 04:28
Base automatically changed from chore/rfc-index-gate to feat/program-fingerprint August 23, 2026 04:30
@tiye
tiye force-pushed the feat/not-bang-alias branch from 0bca4ee to c82f920 Compare August 23, 2026 04:32
@tiye
tiye merged commit 34e798e into feat/program-fingerprint Aug 23, 2026
2 checks passed
@tiye
tiye deleted the feat/not-bang-alias branch August 23, 2026 04:33
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.

2 participants