(apply-assumption-to-root-type type assumption)Inputs: [type :- ats/SemanticType assumption :- aos/Assumption] Returns: ats/SemanticType
Inputs: [type :- ats/SemanticType assumption :- aos/Assumption] Returns: ats/SemanticType
(apply-guard-assumption ctx assumption)Inputs: [ctx :- s/Any assumption :- (s/maybe aos/Assumption)] Returns: s/Any
Inputs: [ctx :- s/Any assumption :- (s/maybe aos/Assumption)] Returns: s/Any
(assumption-base-type assumption assumptions)Inputs: [assumption :- aos/RootedAssumption assumptions :- [aos/Assumption]] Returns: ats/SemanticType
Inputs: [assumption :- aos/RootedAssumption assumptions :- [aos/Assumption]] Returns: ats/SemanticType
(assumption-root? assumption root)Inputs: [assumption :- aos/Assumption root :- aos/RootOrigin] Returns: s/Bool
Inputs: [assumption :- aos/Assumption root :- aos/RootOrigin] Returns: s/Bool
(assumption-truth assumption assumptions)Inputs: [assumption :- aos/Assumption assumptions :- [aos/Assumption]] Returns: aos/AssumptionTruth
Inputs: [assumption :- aos/Assumption assumptions :- [aos/Assumption]] Returns: aos/AssumptionTruth
(blank-check-assumption root polarity)Inputs: [root :- s/Any polarity :- s/Bool] Returns: aos/BlankCheckAssumption
Inputs: [root :- s/Any polarity :- s/Bool] Returns: aos/BlankCheckAssumption
(branch-local-envs ctx locals assumptions conjuncts)Inputs: [ctx :- s/Any locals :- s/Any assumptions :- [aos/Assumption] conjuncts :- aos/Conjuncts] Returns: aos/BranchEnvs
Inputs: [ctx :- s/Any locals :- s/Any assumptions :- [aos/Assumption] conjuncts :- aos/Conjuncts] Returns: aos/BranchEnvs
(branch-origin test then-origin else-origin)Inputs: [test :- s/Any then-origin :- s/Any else-origin :- s/Any] Returns: aos/BranchOrigin
Inputs: [test :- s/Any then-origin :- s/Any else-origin :- s/Any] Returns: aos/BranchOrigin
(call-arg-contract-assumptions node)Inputs: [node :- (s/maybe aas/AnnotatedNode)] Returns: [aos/TypePredicateAssumption]
Inputs: [node :- (s/maybe aas/AnnotatedNode)] Returns: [aos/TypePredicateAssumption]
(conjunction-assumption parts)Inputs: [parts :- s/Any] Returns: aos/ConjunctionAssumption
Inputs: [parts :- s/Any] Returns: aos/ConjunctionAssumption
(contains-key-assumption root key polarity)Inputs: [root :- s/Any key :- s/Any polarity :- s/Bool] Returns: aos/ContainsKeyAssumption
Inputs: [root :- s/Any key :- s/Any polarity :- s/Bool] Returns: aos/ContainsKeyAssumption
(contains-key-test-assumption ctx target-node key)Inputs: [ctx :- s/Any target-node :- s/Any key :- s/Any] Returns: (s/maybe aos/Assumption)
Inputs: [ctx :- s/Any target-node :- s/Any key :- s/Any] Returns: (s/maybe aos/Assumption)
(disjunction-assumption parts)Inputs: [parts :- s/Any] Returns: aos/DisjunctionAssumption
Inputs: [parts :- s/Any] Returns: aos/DisjunctionAssumption
(effective-type ctx sym entry assumptions)Inputs: [ctx :- s/Any sym :- s/Any entry :- s/Any assumptions :- [aos/Assumption]] Returns: ats/SemanticType
Inputs: [ctx :- s/Any sym :- s/Any entry :- s/Any assumptions :- [aos/Assumption]] Returns: ats/SemanticType
(guard-assumption stmt-node)Inputs: [stmt-node :- s/Any] Returns: (s/maybe aos/Assumption)
Inputs: [stmt-node :- s/Any] Returns: (s/maybe aos/Assumption)
(if-test-conjuncts ctx test-node locals)Inputs: [ctx :- s/Any test-node :- s/Any locals :- s/Any] Returns: aos/Conjuncts
Inputs: [ctx :- s/Any test-node :- s/Any locals :- s/Any] Returns: aos/Conjuncts
(invert-assumption assumption)Inputs: [assumption :- aos/Assumption] Returns: (s/maybe aos/Assumption)
Inputs: [assumption :- aos/Assumption] Returns: (s/maybe aos/Assumption)
(local-binding-init-assumption ctx test-node locals)Inputs: [ctx :- s/Any test-node :- s/Any locals :- s/Any] Returns: (s/maybe aos/Assumption)
Inputs: [ctx :- s/Any test-node :- s/Any locals :- s/Any] Returns: (s/maybe aos/Assumption)
(local-root-origin ctx node)Inputs: [ctx :- s/Any node :- s/Any] Returns: (s/maybe aos/RootOrigin)
Inputs: [ctx :- s/Any node :- s/Any] Returns: (s/maybe aos/RootOrigin)
(map-key-lookup-origin root path defaults)Inputs: [root :- s/Any path :- s/Any defaults :- s/Any] Returns: aos/MapKeyLookupOrigin
Inputs: [root :- s/Any path :- s/Any defaults :- s/Any] Returns: aos/MapKeyLookupOrigin
(map-key-lookup-origin-value origin)Inputs: [origin :- s/Any] Returns: s/Any
Inputs: [origin :- s/Any] Returns: s/Any
(node-origin node)Inputs: [node :- s/Any] Returns: (s/maybe aos/Origin)
Inputs: [node :- s/Any] Returns: (s/maybe aos/Origin)
(opaque-origin type)Inputs: [type :- ats/SemanticType] Returns: aos/Origin
Inputs: [type :- ats/SemanticType] Returns: aos/Origin
(opposite-assumption? left right)Inputs: [left :- aos/Assumption right :- aos/Assumption] Returns: s/Bool
Inputs: [left :- aos/Assumption right :- aos/Assumption] Returns: s/Bool
(opposite-polarity assumption)Inputs: [assumption :- aos/Assumption] Returns: (s/maybe aos/Assumption)
Inputs: [assumption :- aos/Assumption] Returns: (s/maybe aos/Assumption)
(origin-type origin assumptions)Inputs: [origin :- aos/Origin assumptions :- [aos/Assumption]] Returns: ats/SemanticType
Inputs: [origin :- aos/Origin assumptions :- [aos/Assumption]] Returns: ats/SemanticType
(path-type-predicate-assumption root path pred-info polarity)Inputs: [root :- s/Any path :- s/Any pred-info :- aos/PredInfo polarity :- s/Bool] Returns: aos/PathTypePredicateAssumption
Inputs: [root :- s/Any path :- s/Any pred-info :- aos/PredInfo polarity :- s/Bool] Returns: aos/PathTypePredicateAssumption
(path-value-equality-assumption root path values polarity)Inputs: [root :- s/Any path :- s/Any values :- [s/Any] polarity :- s/Bool] Returns: aos/PathValueEqualityAssumption
Inputs: [root :- s/Any path :- s/Any values :- [s/Any] polarity :- s/Bool] Returns: aos/PathValueEqualityAssumption
(refine-locals-for-assumption ctx locals assumptions)Inputs: [ctx :- s/Any locals :- s/Any assumptions :- [aos/Assumption]] Returns: s/Any
Inputs: [ctx :- s/Any locals :- s/Any assumptions :- [aos/Assumption]] Returns: s/Any
(refine-root-type root assumptions)Inputs: [root :- aos/RootOrigin assumptions :- [aos/Assumption]] Returns: ats/SemanticType
Inputs: [root :- aos/RootOrigin assumptions :- [aos/Assumption]] Returns: ats/SemanticType
(region-conjuncts ctx node locals)(region-conjuncts ctx node locals alias-map)Inputs: ([ctx :- s/Any node :- s/Any locals :- s/Any] [ctx :- s/Any node :- s/Any locals :- s/Any alias-map :- s/Any]) Returns: aos/Conjuncts
Return {:then-conjuncts [...] :else-conjuncts [...]} of conjuncts known
true in each region (truthy/falsy) of node, derived structurally from
let+if shapes. No and/or vocabulary: the only signal is which branch of
an if carries the test-local. Truth tables:
(if g g y) — false-region: ¬g ∧ ¬y (conjunction); true-region: ¬g ∨ ¬y (disjunction)
(if g y g) — true-region: g ∧ y (conjunction); false-region: ¬g ∨ ¬y (disjunction)
alias-map maps let-bound syms to their init expressions so when a
let-bound local appears as the if-test we narrow on the underlying expression.
Inputs: ([ctx :- s/Any node :- s/Any locals :- s/Any] [ctx :- s/Any node :- s/Any locals :- s/Any alias-map :- s/Any])
Returns: aos/Conjuncts
Return {:then-conjuncts [...] :else-conjuncts [...]} of conjuncts known
true in each region (truthy/falsy) of node, derived structurally from
let+if shapes. No and/or vocabulary: the only signal is which branch of
an `if` carries the test-local. Truth tables:
(if g g y) — false-region: ¬g ∧ ¬y (conjunction); true-region: ¬g ∨ ¬y (disjunction)
(if g y g) — true-region: g ∧ y (conjunction); false-region: ¬g ∨ ¬y (disjunction)
`alias-map` maps let-bound syms to their init expressions so when a
let-bound local appears as the if-test we narrow on the underlying expression.(root-origin sym type)Inputs: [sym :- s/Any type :- ats/SemanticType] Returns: aos/RootOrigin
Inputs: [sym :- s/Any type :- ats/SemanticType] Returns: aos/RootOrigin
(root-origin-value origin)Inputs: [origin :- s/Any] Returns: s/Any
Inputs: [origin :- s/Any] Returns: s/Any
(same-assumption-proposition? a b)Inputs: [a :- aos/Assumption b :- aos/Assumption] Returns: s/Bool
Same narrowed fact on the same root, ignoring branch polarity.
Inputs: [a :- aos/Assumption b :- aos/Assumption] Returns: s/Bool Same narrowed fact on the same root, ignoring branch polarity.
(same-assumption? left right)Inputs: [left :- aos/Assumption right :- aos/Assumption] Returns: s/Bool
Inputs: [left :- aos/Assumption right :- aos/Assumption] Returns: s/Bool
(simplify-assumptions assumptions)Inputs: [assumptions :- [aos/Assumption]] Returns: [aos/Assumption]
Simplify environment assumptions. This is a pure query pass: it asks
assumption-truth, which may reach type refinement, but it does not mutate
state or recursively invoke simplification.
Inputs: [assumptions :- [aos/Assumption]] Returns: [aos/Assumption] Simplify environment assumptions. This is a pure query pass: it asks `assumption-truth`, which may reach type refinement, but it does not mutate state or recursively invoke simplification.
(test->assumption ctx test-node)Inputs: [ctx :- s/Any test-node :- s/Any] Returns: (s/maybe aos/Assumption)
Inputs: [ctx :- s/Any test-node :- s/Any] Returns: (s/maybe aos/Assumption)
(truthy-local-assumption root polarity)Inputs: [root :- s/Any polarity :- s/Bool] Returns: aos/TruthyLocalAssumption
Inputs: [root :- s/Any polarity :- s/Bool] Returns: aos/TruthyLocalAssumption
(type-predicate-assumption root pred-info polarity)Inputs: [root :- s/Any pred-info :- aos/PredInfo polarity :- s/Bool] Returns: aos/TypePredicateAssumption
Inputs: [root :- s/Any pred-info :- aos/PredInfo polarity :- s/Bool] Returns: aos/TypePredicateAssumption
(value-equality-assumption root values polarity)Inputs: [root :- s/Any values :- [s/Any] polarity :- s/Bool] Returns: aos/ValueEqualityAssumption
Inputs: [root :- s/Any values :- [s/Any] polarity :- s/Bool] Returns: aos/ValueEqualityAssumption
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 |