125b43e22f
Fix runtime error not allowing to slice unaddressable array type ( #803 )
...
* fix runtime error not allowing to slice unaddressable array type
* simplify logic and move test
* remove dead code
---------
Signed-off-by: Anton Medvedev <[email protected] >
Co-authored-by: Anton Medvedev <[email protected] >
2025-06-30 20:21:25 +02:00
13992b0526
Ignoring fields with struct tag expr:"-" and make "in" return false for unexported fields ( #806 )
...
* allow ignoring struct member using a - in expr struct tag
* fix in operator
* simplify logic
* add regression test for #807
* fixes #807 : make in operator return false for unexported struct fields
---------
Co-authored-by: Anton Medvedev <[email protected] >
2025-06-30 20:14:08 +02:00
Anton Medvedev
71e349971e
Add better error messages for index out of bounds errors
2024-05-12 11:55:15 +02:00
Anton Medvedev and GitHub
68e3148c1f
Vendor testify ( #642 )
2024-05-08 00:24:35 +02:00
bizy
db5a6defcb
Add bench and tests for runtime.Equal
2024-03-05 01:31:07 +07:00
bizy
5bb64800db
Compare any arrays
2024-02-28 00:30:33 +07:00
Anton Medvedev
14d3c281b2
Remove redundant checks
2024-02-21 00:07:51 +01:00
Anton Medvedev and GitHub
0d43107999
Add concat() builtin ( #565 )
...
* Add concat() builtin
* Use pkg deref in builtin
* Use pkg deref in checker
* Use pkg deref in types_table.go
* Use pkg deref in docgen.go
* Use pkg deref in vm
2024-02-16 22:32:35 +01:00
Anton Medvedev and GitHub
b1e82de54a
Refactor groupBy and sortBy ( #562 )
...
* Rearrange opcodes
* Refactor groupBy
* Fix tests
* Super opcodes for GroupBy
* Refactor sortBy builtin
* Fix sortBy bench
2024-02-15 19:53:35 +01:00
Anton Medvedev and GitHub
79bb049707
Add [generated] tags to files ( #518 )
2024-01-12 21:58:13 +01:00
a0db9a6c19
feat: Implement Bitwise and Shift Operator Support ( #496 )
...
Co-authored-by: Ganesan Karuppasamy <[email protected] >
2023-12-25 18:25:26 +01:00
Augustin Peyrard and GitHub
fe7f698b81
Fix Fetch and OpDeref ( #467 )
...
* Fix OpDeref allowing to deref pointer of interfaces
Loop over `Ptr` and `Interface` kind and get `Elem`. Also return
directly the `nil` otherwise we might are returning the pointer nil
value and not the base nil.
* Fix deref interface in Fetch
We were only de-referencing pointers, but we can have pointer of
interface or interface obfuscating pointers...
So before trying to fetch anything, just deference fully the
variable.
2023-11-16 12:40:28 +01:00
Anton Medvedev
63496e6fe7
Add type checks for 42 in ["a"] as invalid
2023-09-20 14:00:15 +02:00
Anton Medvedev
92dc6c69f6
Fix duration multiplication by integer
2023-08-30 17:45:26 +02:00
Anton Medvedev
76958b5d3f
Fix date manipulation operations
2023-08-30 15:23:33 +02:00
Anton Medvedev
32f5fde2eb
Replace interface{} with any
2023-08-30 11:25:15 +02:00
Anton Medvedev
ff899ca004
Small fixes
2023-08-18 14:21:59 +02:00
Anton Medvedev
07fde81118
Fix slice out of bound errors
2023-08-16 11:29:09 +02:00
Anton Medvedev
719f30d3ad
Add builtin functions
2023-08-14 15:37:06 +02:00
Anton Medvedev
aabd39562a
Refactor expr_test.go
2023-08-14 11:50:42 +02:00
Anton Medvedev
8d959ea2fe
Refactor builtin.Function and move builtin funcs to builtin package
2023-08-14 11:50:42 +02:00
Anton Medvedev and GitHub
95fc04c65e
Refactor deref ( #398 )
...
* Refactor deref types
* Refactor deref opcode inserts
* Add multiple pointers deref
2023-08-10 22:09:32 +02:00
Anton Medvedev and GitHub
4876b330e5
Fix nil key check in map ( #351 )
2023-03-09 23:49:13 +01:00
blotus and GitHub
84db94d36b
runtime.Fetch: add string type assertion check before trying to check if the value is a method ( #349 )
2023-03-09 13:48:26 +01:00
Anton Medvedev
19c72f6e03
Fix abs() for positive numbers
2023-02-03 11:07:11 +01:00
Anton Medvedev
182aac0d60
Remove redundant assignment
2023-01-30 22:54:28 +01:00
Anton Medvedev
6ac7fb473a
Add support for negative indexes
2023-01-30 19:16:44 +01:00
Anton Medvedev
a469abd32b
Add int() and float() builtins
2023-01-29 20:34:15 +01:00
Anton Medvedev
b737180582
Improve builtin performance
2023-01-29 20:34:15 +01:00
Anton Medvedev
fd2d0f5f74
Remove redundant check
2023-01-29 20:34:15 +01:00
Anton Medvedev
72a4ce18e9
Add len() builtin
2023-01-29 20:34:15 +01:00
Anton Medvedev and GitHub
205e24128e
Add better error message for OpFetchField on missing field ( #276 )
2022-11-05 22:00:11 +01:00
Anton Medvedev
bfeb63ba2b
Remove redundant check
2022-11-05 19:43:00 +01:00
Anton Medvedev and GitHub
75f3a61dad
Refactor helpers ( #275 )
2022-11-05 16:33:13 +01:00
Furkan Türkal and GitHub
b03f09d04c
Fix DivideOp: change resulting type to float64 ( #272 )
2022-11-05 13:47:13 +01:00
Anton Medvedev
c4dc3a9948
Fix code style
2022-11-03 22:14:28 +01:00
Anton Medvedev and GitHub
4cee95857e
Remove CanInterface() checks ( #264 )
2022-10-28 21:37:05 +02:00
Anton Medvedev
b8346f98f1
Optimize method calls and builtins opcodes
2022-10-27 21:23:04 +02:00
Anton Medvedev
b77102221c
Add tests
2022-10-21 21:48:18 +02:00
Anton Medvedev
dd65a0fc2d
Add compiler member fetch optimizations
2022-10-20 22:54:36 +02:00
Anton Medvedev
4104ff8967
Add runtime.Field
2022-10-19 23:37:56 +02:00
Anton Medvedev
26975ea2f3
Cast to int and float64 by default
2022-10-19 22:50:34 +02:00
Anton Medvedev
33e3de371b
Remove vm.Fetcher and exprgen pkg
2022-10-19 21:23:34 +02:00
Anton Medvedev
2a34731b5a
Add FieldByIndex optimization
2022-10-19 00:55:01 +02:00
Anton Medvedev
a28d1d704e
Refactor getting field name
2022-10-18 22:53:52 +02:00
Anton Medvedev
2bf336bdb3
Remove FieldByNameFunc call
2022-10-18 21:48:22 +02:00
Anton Medvedev
7bcddc66f8
Remove unnecessary ptr checks
2022-10-18 00:26:17 +02:00
Anton Medvedev
7f1d698d91
Rename reflect.Pointer to reflect.Ptr
2022-10-18 00:10:34 +02:00
Anton Medvedev
b0705d7de2
Add OpDeref opcode
2022-10-18 00:08:53 +02:00
Anton Medvedev
7c2a8a87ff
Refactor generate
2022-10-17 22:36:34 +02:00