Skip to content
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

Binding operators are incorrectly marked dead #150

Open
sim642 opened this issue May 17, 2022 · 1 comment
Open

Binding operators are incorrectly marked dead #150

sim642 opened this issue May 17, 2022 · 1 comment

Comments

@sim642
Copy link

sim642 commented May 17, 2022

Running reanalyze 389dd68 on Goblint goblint/analyzer@a544002 revealed the following.

In a file we have this binding operator definition:

let (let+) xs f = List.map f xs

This is marked dead even though the operator is used later in the file. I'm guessing reanalyze just doesn't handle this newer syntactic structure.

@cristianoc
Copy link
Collaborator

cristianoc commented May 18, 2022

The implementation uses an AST mapper. Looks like this is a let-op, which is handled by ast mappers as a new form of binding. So indeed that seems to be the issue.
Also, several versions of typed AST are supported, from 4.06 to latest, so this would need to be injected a bit carefully using the tricks from the Compatibility module.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants