Add Optional type for filter pipes
Introduces `StaticType::Optional` to represent values that can be either of a specific type `T` or `Void`. This is crucial for handling situations in filter pipes where an expression might not always produce a value. The type checker now correctly deduces and propagates this `Optional` type, and the pipeline operator (`pipe`) is updated to unwrap `Optional(T)` results, yielding `T`. This ensures that the type system accurately reflects the potential absence of values in intermediate pipeline steps. Also includes a minor rename in the tuple-struct example from `pipe` to `p` for clarity, and registers the `streams` module.
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
;; Benchmark: 890ns
|
||||
;; Benchmark-Repeat: 2258
|
||||
(do
|
||||
(def pipe (fn [conf]
|
||||
(def p (fn [conf]
|
||||
(do
|
||||
(def [str s] conf)
|
||||
(def [f ss] s)
|
||||
@@ -10,5 +10,5 @@
|
||||
)
|
||||
)
|
||||
|
||||
(pipe ["btc" [:close "cls"]])
|
||||
(p ["btc" [:close "cls"]])
|
||||
)
|
||||
Reference in New Issue
Block a user