Add CanSeq function and fix seqable? #138
Open
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.
Add CanSeq() function to pkg/lang/seq.go that checks whether a value can be converted to a sequence. This mirrors the Java implementation of RT.canSeq and returns true for types that implement ISeq, Seqable, as well as strings, slices, arrays, maps, and nil.
Fix seqable? predicate in pkg/stdlib/clojure/core/loader.go to use the new CanSeq function instead of incorrectly calling Apply(nil, ...), which caused "cannot call nil" panics during AOT compilation.
Add comprehensive tests in pkg/lang/seq_test.go covering all seqable and non-seqable types to prevent regression.