-
Notifications
You must be signed in to change notification settings - Fork 26
Mono Name-Matcher #820
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Mono Name-Matcher #820
Conversation
|
For the name matcher tests, could you please use the existing Is there any reason to set |
|
I don't know about why mono did not work. I assumed this might be some dedicated design... So in order not to break the existing usage, I kept the existing codes using For the test, will try. |
|
That wasn't a design choice, just something not yet implemented. Please remove that option and make the name matchers always work wirh monomorphized names. |
|
Yes, will do. |
|
Should have fixed all stuff. Also, I was surprised that in the ML version, the wildcard pattern was not supported. New example added for this case and the wildcard pattern is now supported. |
2cf1670 to
bdbe53d
Compare
b3f9b4e to
339e709
Compare
Co-authored-by: ssyram <[email protected]>
339e709 to
f8b9b45
Compare
This PR enhanced the name-matcher mechanism to work also for the mono codes. The key is that when the newly added
match_monoswitch is on, the program now tries to extract out the generics stored within the name and match against this generics. This is a key component to ensure the migration to mono LLBC as in AeneasVerif/eurydice#275 .Notable issue: now there is a discrepency between the parsers in Rust and OCaml. More concretely, the string used in Eurydice, that:
core::slice::index::{core::ops::index::Index<[@T], @I>}::index<'_, @, core::ops::range::Range<usize>, [@]>cannot be recognised byPattern::parsein Rust.