(effective-conditional-arms cond-type)Inputs: [cond-type :- ats/SemanticType] Returns: [ats/SemanticType]
Structural type of each surviving arm post-dispatch refinement.
See effective-conditional-branches.
Inputs: [cond-type :- ats/SemanticType] Returns: [ats/SemanticType] Structural type of each surviving arm post-dispatch refinement. See `effective-conditional-branches`.
(effective-conditional-branches cond-type)Inputs: [cond-type :- ats/SemanticType] Returns: [s/Any]
Return live arm triples [pred eff-type slot3], where each arm's
structural type is narrowed by the negation of all earlier arms'
recognized descriptors. Arms whose effective type is BottomType are
dropped (unreachable). Unrecognized earlier descriptors are skipped.
Inputs: [cond-type :- ats/SemanticType] Returns: [s/Any] Return live arm triples `[pred eff-type slot3]`, where each arm's structural type is narrowed by the negation of all earlier arms' recognized descriptors. Arms whose effective type is BottomType are dropped (unreachable). Unrecognized earlier descriptors are skipped.
(route-conditional-by-predicate cond-type path pred-info polarity)Inputs: [cond-type :- ats/SemanticType path :- [s/Any] pred-info :- #:s{Keyword s/Any} polarity :- s/Bool] Returns: (s/maybe ats/SemanticType)
If any arm's descriptor matches (path, pred-info), return that arm's
effective type (polarity=true) or the ConditionalT minus that arm
(polarity=false). Else nil so callers can fall back to a structural walk.
Inputs: [cond-type :- ats/SemanticType path :- [s/Any] pred-info :- #:s{Keyword s/Any} polarity :- s/Bool]
Returns: (s/maybe ats/SemanticType)
If any arm's descriptor matches `(path, pred-info)`, return that arm's
effective type (polarity=true) or the ConditionalT minus that arm
(polarity=false). Else nil so callers can fall back to a structural walk.(route-conditional-by-values cond-type path values polarity)Inputs: [cond-type :- ats/SemanticType path :- [s/Any] values :- [s/Any] polarity :- s/Bool] Returns: (s/maybe ats/SemanticType)
Like route-conditional-by-predicate, but for descriptors of :values
shape (e.g. discriminator-keyword case).
Inputs: [cond-type :- ats/SemanticType path :- [s/Any] values :- [s/Any] polarity :- s/Bool] Returns: (s/maybe ats/SemanticType) Like `route-conditional-by-predicate`, but for descriptors of `:values` shape (e.g. discriminator-keyword case).
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |