22 Commits
Author SHA1 Message Date
Anton Medvedev 80eb95bf5f Make sure get() returns nil for map[string]string on missing keys
Fixes #723
2025-03-08 17:28:39 +01:00
Anton Medvedev 6c8437454d Update fuzz tests 2025-03-08 16:19:30 +01:00
Anton MedvedevandGitHub fee5690347 Refactor checker to use Nature (#665)
This PR introduces a new concept inside Expr's type checker - Nature.

It's an abstraction other reflect.Type which carries additional information about possible type, methods and builtin function.

I was able to find and fix a few bugs in type checker and optimizer. Implementation of nature concept has proven itself. As well nature will allow to bring more feature for type checker in future.

Why Nature? I was looking for a name to replace Type. Type name already carries much information, as well can be confused with reflect.Type. Nature name should be understood as "nature of the node", same as "type of the node".
2024-06-01 00:09:22 +02:00
Anton Medvedev 27b20607f1 Add sum(map()) optimization 2024-04-13 22:50:11 +02:00
Anton MedvedevandGitHub 772eaba1ca Add predicate to sum() builtin (#592)
* Add predicate to sum() builtin

* go mod tidy
2024-04-13 15:37:02 +02:00
Anton Medvedev ed9dba3991 fuzz: add custom function to fuzzer 2023-12-10 10:44:58 +01:00
Anton Medvedev f03eec706a fuzz: exclude error unknown time zone 2023-12-08 18:42:45 +01:00
Anton Medvedev 551d2a7e0f Use expr-lang/expr 2023-12-03 21:53:01 +01:00
Anton Medvedev 57eb00d735 fuzz: skip string index out of range 2023-11-27 22:03:15 +01:00
Anton Medvedev 18b58750af fuzz: extend "cannot sum" error to all types 2023-11-24 16:54:23 +01:00
Anton Medvedev 885c769c65 Fix type checker for float arguments
Fixes #474
2023-11-24 16:50:09 +01:00
Anton Medvedev e817dfb8a8 fuzz: ignore sun(any) runtime errors
Fixes #464
2023-11-16 22:31:25 +01:00
Anton Medvedev 918fbfb0e4 fuzz: skip too long code 2023-11-16 22:16:12 +01:00
Anton Medvedev 63496e6fe7 Add type checks for 42 in ["a"] as invalid 2023-09-20 14:00:15 +02:00
Anton MedvedevandGitHub 5a19893fcc Delete fuzz_coverage_test.go 2023-09-16 20:32:32 +02:00
Anton Medvedev ee0ef27c45 Add fuzz filter 2023-09-08 09:08:35 +02:00
Anton Medvedev 34ce2a5c40 Exclude "operator "in" not defined on float64" 2023-09-05 18:40:03 +02:00
Anton Medvedev 3068794c81 Move fuzz env to fuzz_env.go 2023-09-03 11:10:34 +02:00
Anton Medvedev de52937e0d Add fuzz_coverage_test.go 2023-09-01 10:00:05 +02:00
Anton Medvedev e1bedbde14 Update fuzz testing 2023-08-30 09:55:05 +02:00
Anton Medvedev eb03bcb945 Remove ExperimentalPipe() 2023-08-24 15:26:36 +02:00
Anton Medvedev 1963e72aac Move fuzz 2023-08-23 14:40:33 +02:00