{"action":"created","issue":{"url":"https://api.github.com/repos/rust-lang/rust/issues/53119","repository_url":"https://api.github.com/repos/rust-lang/rust","labels_url":"https://api.github.com/repos/rust-lang/rust/issues/53119/labels{/name}","comments_url":"https://api.github.com/repos/rust-lang/rust/issues/53119/comments","events_url":"https://api.github.com/repos/rust-lang/rust/issues/53119/events","html_url":"https://github.com/rust-lang/rust/issues/53119","id":348034612,"node_id":"MDU6SXNzdWUzNDgwMzQ2MTI=","number":53119,"title":"[nll] `gluon_base` does not compile with NLL","user":{"login":"nikomatsakis","id":155238,"node_id":"MDQ6VXNlcjE1NTIzOA==","avatar_url":"https://avatars0.githubusercontent.com/u/155238?v=4","gravatar_id":"","url":"https://api.github.com/users/nikomatsakis","html_url":"https://github.com/nikomatsakis","followers_url":"https://api.github.com/users/nikomatsakis/followers","following_url":"https://api.github.com/users/nikomatsakis/following{/other_user}","gists_url":"https://api.github.com/users/nikomatsakis/gists{/gist_id}","starred_url":"https://api.github.com/users/nikomatsakis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nikomatsakis/subscriptions","organizations_url":"https://api.github.com/users/nikomatsakis/orgs","repos_url":"https://api.github.com/users/nikomatsakis/repos","events_url":"https://api.github.com/users/nikomatsakis/events{/privacy}","received_events_url":"https://api.github.com/users/nikomatsakis/received_events","type":"User","site_admin":false},"labels":[{"id":867465703,"node_id":"MDU6TGFiZWw4Njc0NjU3MDM=","url":"https://api.github.com/repos/rust-lang/rust/labels/NLL-complete","name":"NLL-complete","color":"f799ea","default":false},{"id":211668100,"node_id":"MDU6TGFiZWwyMTE2NjgxMDA=","url":"https://api.github.com/repos/rust-lang/rust/labels/T-compiler","name":"T-compiler","color":"bfd4f2","default":false},{"id":693557751,"node_id":"MDU6TGFiZWw2OTM1NTc3NTE=","url":"https://api.github.com/repos/rust-lang/rust/labels/WG-compiler-nll","name":"WG-compiler-nll","color":"c2e0c6","default":false}],"state":"open","locked":false,"assignee":{"login":"mikhail-m1","id":5663581,"node_id":"MDQ6VXNlcjU2NjM1ODE=","avatar_url":"https://avatars1.githubusercontent.com/u/5663581?v=4","gravatar_id":"","url":"https://api.github.com/users/mikhail-m1","html_url":"https://github.com/mikhail-m1","followers_url":"https://api.github.com/users/mikhail-m1/followers","following_url":"https://api.github.com/users/mikhail-m1/following{/other_user}","gists_url":"https://api.github.com/users/mikhail-m1/gists{/gist_id}","starred_url":"https://api.github.com/users/mikhail-m1/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikhail-m1/subscriptions","organizations_url":"https://api.github.com/users/mikhail-m1/orgs","repos_url":"https://api.github.com/users/mikhail-m1/repos","events_url":"https://api.github.com/users/mikhail-m1/events{/privacy}","received_events_url":"https://api.github.com/users/mikhail-m1/received_events","type":"User","site_admin":false},"assignees":[{"login":"mikhail-m1","id":5663581,"node_id":"MDQ6VXNlcjU2NjM1ODE=","avatar_url":"https://avatars1.githubusercontent.com/u/5663581?v=4","gravatar_id":"","url":"https://api.github.com/users/mikhail-m1","html_url":"https://github.com/mikhail-m1","followers_url":"https://api.github.com/users/mikhail-m1/followers","following_url":"https://api.github.com/users/mikhail-m1/following{/other_user}","gists_url":"https://api.github.com/users/mikhail-m1/gists{/gist_id}","starred_url":"https://api.github.com/users/mikhail-m1/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikhail-m1/subscriptions","organizations_url":"https://api.github.com/users/mikhail-m1/orgs","repos_url":"https://api.github.com/users/mikhail-m1/repos","events_url":"https://api.github.com/users/mikhail-m1/events{/privacy}","received_events_url":"https://api.github.com/users/mikhail-m1/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/rust-lang/rust/milestones/54","html_url":"https://github.com/rust-lang/rust/milestone/54","labels_url":"https://api.github.com/repos/rust-lang/rust/milestones/54/labels","id":3463305,"node_id":"MDk6TWlsZXN0b25lMzQ2MzMwNQ==","number":54,"title":"Rust 2018 RC","description":"See https://internals.rust-lang.org/t/rust-2018-the-home-stretch/7810","creator":{"login":"nikomatsakis","id":155238,"node_id":"MDQ6VXNlcjE1NTIzOA==","avatar_url":"https://avatars0.githubusercontent.com/u/155238?v=4","gravatar_id":"","url":"https://api.github.com/users/nikomatsakis","html_url":"https://github.com/nikomatsakis","followers_url":"https://api.github.com/users/nikomatsakis/followers","following_url":"https://api.github.com/users/nikomatsakis/following{/other_user}","gists_url":"https://api.github.com/users/nikomatsakis/gists{/gist_id}","starred_url":"https://api.github.com/users/nikomatsakis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nikomatsakis/subscriptions","organizations_url":"https://api.github.com/users/nikomatsakis/orgs","repos_url":"https://api.github.com/users/nikomatsakis/repos","events_url":"https://api.github.com/users/nikomatsakis/events{/privacy}","received_events_url":"https://api.github.com/users/nikomatsakis/received_events","type":"User","site_admin":false},"open_issues":45,"closed_issues":23,"state":"open","created_at":"2018-06-29T18:51:29Z","updated_at":"2018-08-07T14:37:31Z","due_on":"2018-09-13T07:00:00Z","closed_at":null},"comments":5,"created_at":"2018-08-06T18:31:01Z","updated_at":"2018-08-07T15:16:50Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"I reduced a crater run failure of `gluon_base` v0.8.0 to [this standalone snippet](https://play.rust-lang.org/?gist=4cfa7a80bffea0a12f1f73e7981378b1&version=nightly&mode=debug&edition=2015):\r\n\r\n```rust\r\n#![feature(nll)]\r\n\r\nuse std::ops::Deref;\r\n\r\npub struct TypeFieldIterator<'a, T: 'a> {\r\n    typ: &'a T,\r\n    current: usize,\r\n}\r\n\r\npub enum Type<Id, T> {\r\n    Unit,\r\n\r\n    Record(T),\r\n    \r\n    ExtendRow {\r\n        types: Vec<(Id, T)>,\r\n        rest: T,\r\n    },\r\n}\r\n\r\nimpl<'a, Id: 'a, T> Iterator for TypeFieldIterator<'a, T>\r\nwhere\r\n    T: Deref<Target = Type<Id, T>>,\r\n{\r\n    type Item = &'a (Id, T);\r\n    \r\n    fn next(&mut self) -> Option<&'a (Id, T)> {\r\n        match **self.typ {\r\n            Type::Unit => None,\r\n\r\n            Type::Record(ref row) => {\r\n                self.typ = row;\r\n                self.next()\r\n            }\r\n            \r\n            Type::ExtendRow { ref types, ref rest } => {\r\n                let current = self.current;\r\n                self.current += 1;\r\n                types.get(current).or_else(|| {\r\n                    self.current = 0;\r\n                    self.typ = rest;\r\n                    self.next()\r\n                })\r\n            }            \r\n        }\r\n    }\r\n}\r\n\r\nfn main() { }\r\n```\r\n\r\nthis compiles without NLL; with NLL it fails with:\r\n\r\n```\r\nerror[E0310]: the parameter type `Id` may not live long enough\r\n  --> src/main.rs:39:44\r\n   |\r\n39 |                   types.get(current).or_else(|| {\r\n   |  ____________________________________________^\r\n40 | |                     self.current = 0;\r\n41 | |                     self.typ = rest;\r\n42 | |                     self.next()\r\n43 | |                 })\r\n   | |_________________^\r\n   |\r\n   = help: consider adding an explicit lifetime bound `Id: 'static`...\r\n```\r\n\r\nI think this is some kind of failure from the \"closure checking\" code."},"comment":{"url":"https://api.github.com/repos/rust-lang/rust/issues/comments/411093661","html_url":"https://github.com/rust-lang/rust/issues/53119#issuecomment-411093661","issue_url":"https://api.github.com/repos/rust-lang/rust/issues/53119","id":411093661,"node_id":"MDEyOklzc3VlQ29tbWVudDQxMTA5MzY2MQ==","user":{"login":"bemeurer","id":7243783,"node_id":"MDQ6VXNlcjcyNDM3ODM=","avatar_url":"https://avatars1.githubusercontent.com/u/7243783?v=4","gravatar_id":"","url":"https://api.github.com/users/bemeurer","html_url":"https://github.com/bemeurer","followers_url":"https://api.github.com/users/bemeurer/followers","following_url":"https://api.github.com/users/bemeurer/following{/other_user}","gists_url":"https://api.github.com/users/bemeurer/gists{/gist_id}","starred_url":"https://api.github.com/users/bemeurer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bemeurer/subscriptions","organizations_url":"https://api.github.com/users/bemeurer/orgs","repos_url":"https://api.github.com/users/bemeurer/repos","events_url":"https://api.github.com/users/bemeurer/events{/privacy}","received_events_url":"https://api.github.com/users/bemeurer/received_events","type":"User","site_admin":false},"created_at":"2018-08-07T15:16:50Z","updated_at":"2018-08-07T15:16:50Z","author_association":"NONE","body":"Actually, @nikomatsakis, is there any chance I could give this a try? I've been wanting to start helping out on compiler work for a while, and I like this issue!\r\n\r\nAssuming you'd have time to lend a hand I'd love to take it!"}}
{"actor":{"display_login":"bemeurer"}}