Phase 12: Protocol System — full implementation with all tests passing
Root cause: fn* multi-arity detection checks (array? (in form 1)) — defprotocol used @[...] for args, triggering multi-arity path that treated the body form as a second arity pair. Fixes applied: - defprotocol: change fn* args from @[...] to [...] (tuple) so single-arity fn* path is used with [this & rest-args] - defprotocol: remove quote wrappers from protocol-dispatch call (protocol-name and method-name passed directly as symbols) - extend-type/extend-protocol: remove quote wrappers from register-method call (symbols passed directly, not via quote) - protocol-dispatch: use (in form ...) directly for proto/method symbols (no eval-form needed after quote removal) - satisfy?: extract name string from protocol value's :name field (which is a symbol struct, not a plain string) - make-reified: remove spurious (apply fn []) call - core-reify: fix (keyword struct) → extract :name string first - core-extend-protocol: handle single method spec vs multi 5 test sections (35-39) covering: defprotocol, extend-type, extend-protocol, satisfies?, reify — all pass 315 ok, 2 fail (pre-existing, unchanged)
This commit is contained in:
parent
d6eb29646d
commit
f7747ed1b4
4 changed files with 118 additions and 55 deletions
|
|
@ -1,32 +1,23 @@
|
|||
{
|
||||
"jolt-persistent-structures": {
|
||||
"jolt-dev": {
|
||||
"created_by": "agent",
|
||||
"use_count": 1,
|
||||
"view_count": 7,
|
||||
"patch_count": 0,
|
||||
"last_used_at": "2026-06-03T03:49:43.520839+00:00",
|
||||
"last_viewed_at": "2026-06-03T04:18:13.482762+00:00",
|
||||
"created_at": "2026-06-03T03:35:04.130959+00:00",
|
||||
"state": "active",
|
||||
"pinned": false
|
||||
},
|
||||
"jolt-gotchas": {
|
||||
"created_by": "agent",
|
||||
"use_count": 0,
|
||||
"view_count": 5,
|
||||
"patch_count": 0,
|
||||
"last_viewed_at": "2026-06-03T04:18:13.476736+00:00",
|
||||
"created_at": "2026-06-03T03:50:41.474730+00:00",
|
||||
"use_count": 35,
|
||||
"view_count": 62,
|
||||
"patch_count": 42,
|
||||
"last_used_at": "2026-06-03T03:49:43.510599+00:00",
|
||||
"last_viewed_at": "2026-06-03T04:20:32.579847+00:00",
|
||||
"last_patched_at": "2026-06-03T03:34:09.007253+00:00",
|
||||
"created_at": "2026-06-01T21:26:06.614465+00:00",
|
||||
"state": "active",
|
||||
"pinned": false
|
||||
},
|
||||
"jolt-compiler": {
|
||||
"created_by": "agent",
|
||||
"use_count": 9,
|
||||
"view_count": 19,
|
||||
"view_count": 25,
|
||||
"patch_count": 9,
|
||||
"last_used_at": "2026-06-03T03:49:43.470444+00:00",
|
||||
"last_viewed_at": "2026-06-03T04:18:13.465606+00:00",
|
||||
"last_viewed_at": "2026-06-03T04:20:32.574065+00:00",
|
||||
"last_patched_at": "2026-06-03T03:03:27.524946+00:00",
|
||||
"created_at": "2026-06-02T17:54:38.690279+00:00",
|
||||
"state": "active",
|
||||
|
|
@ -35,35 +26,44 @@
|
|||
"jpm-build": {
|
||||
"created_by": "agent",
|
||||
"use_count": 0,
|
||||
"view_count": 21,
|
||||
"view_count": 27,
|
||||
"patch_count": 0,
|
||||
"last_viewed_at": "2026-06-03T04:18:13.488874+00:00",
|
||||
"last_viewed_at": "2026-06-03T04:20:32.597461+00:00",
|
||||
"created_at": "2026-06-01T20:56:39.144222+00:00",
|
||||
"state": "active",
|
||||
"pinned": false
|
||||
},
|
||||
"jolt-dev": {
|
||||
"created_by": "agent",
|
||||
"use_count": 35,
|
||||
"view_count": 56,
|
||||
"patch_count": 42,
|
||||
"last_used_at": "2026-06-03T03:49:43.510599+00:00",
|
||||
"last_viewed_at": "2026-06-03T04:18:13.470424+00:00",
|
||||
"last_patched_at": "2026-06-03T03:34:09.007253+00:00",
|
||||
"created_at": "2026-06-01T21:26:06.614465+00:00",
|
||||
"state": "active",
|
||||
"pinned": false
|
||||
},
|
||||
"jolt-bootstrap": {
|
||||
"created_by": "agent",
|
||||
"use_count": 9,
|
||||
"view_count": 30,
|
||||
"view_count": 36,
|
||||
"patch_count": 10,
|
||||
"last_used_at": "2026-06-02T18:45:23.336653+00:00",
|
||||
"last_viewed_at": "2026-06-03T04:18:13.459884+00:00",
|
||||
"last_viewed_at": "2026-06-03T04:20:32.567542+00:00",
|
||||
"last_patched_at": "2026-06-02T03:44:45.935676+00:00",
|
||||
"created_at": "2026-06-01T21:49:51.101718+00:00",
|
||||
"state": "active",
|
||||
"pinned": false
|
||||
},
|
||||
"jolt-gotchas": {
|
||||
"created_by": "agent",
|
||||
"use_count": 0,
|
||||
"view_count": 11,
|
||||
"patch_count": 0,
|
||||
"last_viewed_at": "2026-06-03T04:20:32.585916+00:00",
|
||||
"created_at": "2026-06-03T03:50:41.474730+00:00",
|
||||
"state": "active",
|
||||
"pinned": false
|
||||
},
|
||||
"jolt-persistent-structures": {
|
||||
"created_by": "agent",
|
||||
"use_count": 1,
|
||||
"view_count": 13,
|
||||
"patch_count": 0,
|
||||
"last_used_at": "2026-06-03T03:49:43.520839+00:00",
|
||||
"last_viewed_at": "2026-06-03T04:20:32.591070+00:00",
|
||||
"created_at": "2026-06-03T03:35:04.130959+00:00",
|
||||
"state": "active",
|
||||
"pinned": false
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue