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

Start implementing the friendly front-end format #48

Merged
merged 1 commit into from
May 28, 2018

Conversation

lqd
Copy link
Member

@lqd lqd commented May 24, 2018

Implement the friendlier front-end format described in issue #26 — destined to help create isolated tests without needing rustc NLL facts, but still generating the same data structure.

Still incomplete regarding use, which might require def, and also that polonius compute liveness, to correctly emit region_live_at points. I'll open an issue for those specific points after this lands.

Here's how it looks:

// program description
universal_regions { 'a, 'b, 'c }

// block description
block B0 {
    // effects are by default emitted on the Mid point
    invalidates(L0);

    // but we can still emit some at the Start point if needed
    // by separating the Start point effects from the Mid point effects with a "/"
    invalidates(L1) / kill(L2);

    goto B1;
}
block B1 {
    use('a, 'b), outlives('a: 'b), borrow_region_at('b, L1);
}

(Sorry about opening another PR, Github prevents reopening a PR in cases of force push, which I did for the rebases)

Note: This doesn't implement the requirements for the liveness computation described here #45 (comment)

@lqd lqd force-pushed the frontend branch 3 times, most recently from d4ea16c to fdd81e3 Compare May 27, 2018 08:33
Implement a friendlier front-end format destined to help create
isolated tests, without needing rustc NLL facts, but still generating
the same data structure.
@nikomatsakis nikomatsakis merged commit 5b6a3bc into rust-lang:master May 28, 2018
@lqd lqd deleted the frontend branch May 29, 2018 08:38
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

Successfully merging this pull request may close these issues.

2 participants