📚 Document int?/integer? predicate coverage in Clojure memory

Review assumed int? was 32-bit; it covers Long/Integer/Short/Byte.
Note it in mem:clojure/idioms so the mistake is not repeated.

AI-assisted-by: muse-spark-1.3-contributor
This commit is contained in:
Andrey Antukh 2026-09-17 18:16:40 +00:00
parent 2fc2a9064a
commit 5b3e36489c
2 changed files with 13 additions and 0 deletions

View File

@ -0,0 +1,10 @@
# Clojure Idioms (verified)
Behaviors confirmed against the language/stdlib — do not re-derive from
assumption; a wrong assumption here already cost a review round.
- `int?` is NOT 32-bit-only: true for `Long`, `Integer`, `Short`,
`Byte` (fixed-precision integers). Clojure integer literals are
`Long`, so `(int? 5000)` is true.
- `integer?` is the general integer predicate; prefer it when any
integer kind must match, `int?` only when fixed precision is meant.

View File

@ -7,6 +7,9 @@ You are working on the GitHub project `penpot/penpot`, a monorepo.
before focused memories.
- Edits/stale refs/duplication cleanup: `mem:memory-maintenance`.
- Cross-cutting testing principles, TDD workflow, and anti-patterns: `mem:testing`.
- Verified Clojure language behaviors that contradict common assumptions
(e.g. `int?` covers `Long`; `integer?` is the general predicate):
`mem:clojure/idioms` — read before assuming stdlib predicate semantics.
# Development workflow