{"action":"created","issue":{"url":"https://api.github.com/repos/servo/rust-bindgen/issues/824","repository_url":"https://api.github.com/repos/servo/rust-bindgen","labels_url":"https://api.github.com/repos/servo/rust-bindgen/issues/824/labels{/name}","comments_url":"https://api.github.com/repos/servo/rust-bindgen/issues/824/comments","events_url":"https://api.github.com/repos/servo/rust-bindgen/issues/824/events","html_url":"https://github.com/servo/rust-bindgen/pull/824","id":243829680,"number":824,"title":"WIP use fix point analysis to implement can_derive_debug","user":{"login":"photoszzt","id":1476795,"avatar_url":"https://avatars1.githubusercontent.com/u/1476795?v=4","gravatar_id":"","url":"https://api.github.com/users/photoszzt","html_url":"https://github.com/photoszzt","followers_url":"https://api.github.com/users/photoszzt/followers","following_url":"https://api.github.com/users/photoszzt/following{/other_user}","gists_url":"https://api.github.com/users/photoszzt/gists{/gist_id}","starred_url":"https://api.github.com/users/photoszzt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/photoszzt/subscriptions","organizations_url":"https://api.github.com/users/photoszzt/orgs","repos_url":"https://api.github.com/users/photoszzt/repos","events_url":"https://api.github.com/users/photoszzt/events{/privacy}","received_events_url":"https://api.github.com/users/photoszzt/received_events","type":"User","site_admin":false},"labels":[{"id":401540323,"url":"https://api.github.com/repos/servo/rust-bindgen/labels/S-awaiting-review","name":"S-awaiting-review","color":"ededed","default":false}],"state":"open","locked":false,"assignee":{"login":"fitzgen","id":74571,"avatar_url":"https://avatars2.githubusercontent.com/u/74571?v=4","gravatar_id":"","url":"https://api.github.com/users/fitzgen","html_url":"https://github.com/fitzgen","followers_url":"https://api.github.com/users/fitzgen/followers","following_url":"https://api.github.com/users/fitzgen/following{/other_user}","gists_url":"https://api.github.com/users/fitzgen/gists{/gist_id}","starred_url":"https://api.github.com/users/fitzgen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fitzgen/subscriptions","organizations_url":"https://api.github.com/users/fitzgen/orgs","repos_url":"https://api.github.com/users/fitzgen/repos","events_url":"https://api.github.com/users/fitzgen/events{/privacy}","received_events_url":"https://api.github.com/users/fitzgen/received_events","type":"User","site_admin":false},"assignees":[{"login":"fitzgen","id":74571,"avatar_url":"https://avatars2.githubusercontent.com/u/74571?v=4","gravatar_id":"","url":"https://api.github.com/users/fitzgen","html_url":"https://github.com/fitzgen","followers_url":"https://api.github.com/users/fitzgen/followers","following_url":"https://api.github.com/users/fitzgen/following{/other_user}","gists_url":"https://api.github.com/users/fitzgen/gists{/gist_id}","starred_url":"https://api.github.com/users/fitzgen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fitzgen/subscriptions","organizations_url":"https://api.github.com/users/fitzgen/orgs","repos_url":"https://api.github.com/users/fitzgen/repos","events_url":"https://api.github.com/users/fitzgen/events{/privacy}","received_events_url":"https://api.github.com/users/fitzgen/received_events","type":"User","site_admin":false}],"milestone":null,"comments":4,"created_at":"2017-07-18T19:44:43Z","updated_at":"2017-07-18T22:14:57Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/servo/rust-bindgen/pulls/824","html_url":"https://github.com/servo/rust-bindgen/pull/824","diff_url":"https://github.com/servo/rust-bindgen/pull/824.diff","patch_url":"https://github.com/servo/rust-bindgen/pull/824.patch"},"body":"It's failing about 30 tests now and most of them is related to template. I'm also not so sure about the place to call compute_can_derive_debug in gen. \r\nFix: #767 \r\n\r\nr? @fitzgen "},"comment":{"url":"https://api.github.com/repos/servo/rust-bindgen/issues/comments/316214009","html_url":"https://github.com/servo/rust-bindgen/pull/824#issuecomment-316214009","issue_url":"https://api.github.com/repos/servo/rust-bindgen/issues/824","id":316214009,"user":{"login":"fitzgen","id":74571,"avatar_url":"https://avatars2.githubusercontent.com/u/74571?v=4","gravatar_id":"","url":"https://api.github.com/users/fitzgen","html_url":"https://github.com/fitzgen","followers_url":"https://api.github.com/users/fitzgen/followers","following_url":"https://api.github.com/users/fitzgen/following{/other_user}","gists_url":"https://api.github.com/users/fitzgen/gists{/gist_id}","starred_url":"https://api.github.com/users/fitzgen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fitzgen/subscriptions","organizations_url":"https://api.github.com/users/fitzgen/orgs","repos_url":"https://api.github.com/users/fitzgen/repos","events_url":"https://api.github.com/users/fitzgen/events{/privacy}","received_events_url":"https://api.github.com/users/fitzgen/received_events","type":"User","site_admin":false},"created_at":"2017-07-18T22:14:57Z","updated_at":"2017-07-18T22:14:57Z","body":"I'd suggest working on getting the smaller (and therefore usually simpler) test cases passing before working on larger ones. Often, the root cause of the issue will be the same in a larger test case, but easier to understand in a smaller setting that has less extra context, and then when you fix it for the small test case, the larger test case is also fixed.\r\n\r\nIt looks like `template-param-usage-15.hpp` is a good candidate to dig into next.\r\n\r\n```diff\r\n--- expected: \"/home/travis/build/servo/rust-bindgen/tests/expectations/tests/template-param-usage-15.rs\"\r\n\r\n+++ generated from: \"/home/travis/build/servo/rust-bindgen/tests/headers/template-param-usage-15.hpp\"\r\n /* automatically generated by rust-bindgen */\r\n \r\n \r\n #![allow(dead_code, non_snake_case, non_camel_case_types, non_upper_case_globals)]\r\n \r\n \r\n #[repr(C)]\r\n #[derive(Debug, Copy, Clone)]\r\n pub struct BaseUsesT<T> {\r\n     pub usage: *mut T,\r\n     pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,\r\n }\r\n impl <T> Default for BaseUsesT<T> {\r\n     fn default() -> Self { unsafe { ::std::mem::zeroed() } }\r\n }\r\n #[repr(C)]\r\n-#[derive(Debug, Copy, Clone)]\r\n+#[derive(Copy, Clone)]\r\n pub struct CrtpIgnoresU {\r\n     pub _base: BaseUsesT<CrtpIgnoresU>,\r\n     pub y: ::std::os::raw::c_int,\r\n }\r\n impl Default for CrtpIgnoresU {\r\n     fn default() -> Self { unsafe { ::std::mem::zeroed() } }\r\n }\r\n```\r\n\r\nIt looks like maybe the `CrtpIgnoresU` doesn't realize that its template instantiation of `BaseUsesT` should be able to derive debug?"}}
{"actor":{"display_login":"fitzgen"}}