You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
where u64 used in term position is a cast (compiles to as u64, but also works with typechecking at ISLE level) and :i64 on a constant sets the type of the constant.
This is all a bit uncertain but I feel there's a better system for constants, and for integer types, buried in here somewhere...
* Multi-extractors should only be used in multi-terms
* ISLE int literals should be in range for their type
See #5431 and #5423.
* Make StableSet usable in public interfaces
Also implement an immutable version of DisjointSets::find_mut.
* Return analyzed terms from overlap check
If the caller wants the `trie_again::RuleSet` for a term, don't make
them recompute it.
* Expose binding lookups and sources
* Don't dedup or prune impure constructor calls
* Record int types for bindings and constraints
This means that bindings for constant integers that have the same value
but not the same type no longer hash-cons into the same binding ID.
* Track binding sites from calling multi-terms
* Implement more traits
Lift a bit more of the integer type system into ISLE. Namely
such that in a
u64
context we accept literals in 0..2^64 and in ani64
context we accept -2^63..2^63. Then we also add some syntaxwhere
u64
used in term position is a cast (compiles toas u64
, but also works with typechecking at ISLE level) and:i64
on a constant sets the type of the constant.This is all a bit uncertain but I feel there's a better system for constants, and for integer types, buried in here somewhere...
Originally posted by @cfallin in #5423 (comment)
The text was updated successfully, but these errors were encountered: