go: Phase 8 first slice — stdlib strings/strconv, 41 tests, +40 cleared [shapes-static-types-bidirectional]
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 31s
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 31s
New :go-package NAME ENTRIES value type with field lookup via
extended go-eval-select. New :go-builtin-fn callable for closure-
based stdlib functions. lib/go/std/strings.sx ships 12 functions
(Contains, HasPrefix, HasSuffix, Index, Count, Repeat, Join,
ToUpper, ToLower, TrimSpace, Split, Replace) + lib/go/std/strconv.sx
ships Itoa/Atoi.
Pre-existing bug fixed: parser was emitting (:literal V) for both
`42` and `"42"`, relying on first-char heuristic in eval/types.
Now emits :literal-string for string/rune literals so Atoi("42")
correctly receives the string. 3 parse tests + 2 in-composite-key
tests updated to new shape.
Total 597/597. Stdlib 41/41 — +40 acceptance bar cleared. Sister
diary documents the 11 value-type kinds (struct/slice/map/chan/
fn/method/builtin/builtin-fn/package/panic/defer) all sharing the
"(:KIND PAYLOAD...)" shape, alongside AST nodes and sentinel signals
as the kit's three orthogonal first-class-tag axes.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -54,12 +54,17 @@
|
||||
(let
|
||||
((ty (gp-tok-type)) (v (gp-tok-value)))
|
||||
(cond
|
||||
(or (= ty "string") (= ty "rune"))
|
||||
;; Quoted/rune literals: tag distinctly so eval/types
|
||||
;; can dispatch without re-classifying by first-char
|
||||
;; (which conflates `42` and `"42"`). See lib/go/types.sx
|
||||
;; `go-classify-literal-string` for the heuristic this
|
||||
;; tag obviates.
|
||||
(do (gp-advance!) (list :literal-string v))
|
||||
(or
|
||||
(= ty "int")
|
||||
(= ty "float")
|
||||
(= ty "imag")
|
||||
(= ty "string")
|
||||
(= ty "rune"))
|
||||
(= ty "imag"))
|
||||
(do (gp-advance!) (ast-literal v))
|
||||
(= ty "ident")
|
||||
(do (gp-advance!) (ast-var v))
|
||||
|
||||
Reference in New Issue
Block a user