{"action":"created","issue":{"url":"https://api.github.com/repos/dlang/dmd/issues/8222","repository_url":"https://api.github.com/repos/dlang/dmd","labels_url":"https://api.github.com/repos/dlang/dmd/issues/8222/labels{/name}","comments_url":"https://api.github.com/repos/dlang/dmd/issues/8222/comments","events_url":"https://api.github.com/repos/dlang/dmd/issues/8222/events","html_url":"https://github.com/dlang/dmd/pull/8222","id":320574232,"number":8222,"title":"Fix issue 17968 - Use typeid(Object) instead of typeid(T) to avoid pulling in unused symbols","user":{"login":"schveiguy","id":580778,"avatar_url":"https://avatars0.githubusercontent.com/u/580778?v=4","gravatar_id":"","url":"https://api.github.com/users/schveiguy","html_url":"https://github.com/schveiguy","followers_url":"https://api.github.com/users/schveiguy/followers","following_url":"https://api.github.com/users/schveiguy/following{/other_user}","gists_url":"https://api.github.com/users/schveiguy/gists{/gist_id}","starred_url":"https://api.github.com/users/schveiguy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/schveiguy/subscriptions","organizations_url":"https://api.github.com/users/schveiguy/orgs","repos_url":"https://api.github.com/users/schveiguy/repos","events_url":"https://api.github.com/users/schveiguy/events{/privacy}","received_events_url":"https://api.github.com/users/schveiguy/received_events","type":"User","site_admin":false},"labels":[{"id":537492633,"url":"https://api.github.com/repos/dlang/dmd/labels/Bug%20Fix","name":"Bug Fix","color":"0052cc","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":19,"created_at":"2018-05-06T08:41:35Z","updated_at":"2018-05-24T20:26:50Z","closed_at":null,"author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/dlang/dmd/pulls/8222","html_url":"https://github.com/dlang/dmd/pull/8222","diff_url":"https://github.com/dlang/dmd/pull/8222.diff","patch_url":"https://github.com/dlang/dmd/pull/8222.patch"},"body":"The root cause of this problem still isn't fixed, I'll open a new bug report to demonstrate the original issue. This is a workaround, but since it's generated code by the compiler, it shouldn't really affect anything (except allow linking).\r\n\r\nNote that using `typeid(Object)` instead of `typeid(T)` on the tuple member is fine as long as it's really an `Object`. `TypeInfo_Class.getHash` *always* casts its argument to `Object` and calls `toHash` on it, no matter what the actual type is.\r\n\r\nping @MartinNowak this is the bug that prevents `iopipe` from using `io`. Thanks to @tgehr, @jacob-carlborg , @thewilsonator, @rainers, @RazvanN7 for helping me figure this out at dconf!"},"comment":{"url":"https://api.github.com/repos/dlang/dmd/issues/comments/391848331","html_url":"https://github.com/dlang/dmd/pull/8222#issuecomment-391848331","issue_url":"https://api.github.com/repos/dlang/dmd/issues/8222","id":391848331,"user":{"login":"schveiguy","id":580778,"avatar_url":"https://avatars0.githubusercontent.com/u/580778?v=4","gravatar_id":"","url":"https://api.github.com/users/schveiguy","html_url":"https://github.com/schveiguy","followers_url":"https://api.github.com/users/schveiguy/followers","following_url":"https://api.github.com/users/schveiguy/following{/other_user}","gists_url":"https://api.github.com/users/schveiguy/gists{/gist_id}","starred_url":"https://api.github.com/users/schveiguy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/schveiguy/subscriptions","organizations_url":"https://api.github.com/users/schveiguy/orgs","repos_url":"https://api.github.com/users/schveiguy/repos","events_url":"https://api.github.com/users/schveiguy/events{/privacy}","received_events_url":"https://api.github.com/users/schveiguy/received_events","type":"User","site_admin":false},"created_at":"2018-05-24T20:26:50Z","updated_at":"2018-05-24T20:26:50Z","author_association":"MEMBER","body":"> This is basically what TypeInfo_Class.getHash is doing.\r\n\r\nNot exactly -- it's casting it FROM const(void)* to Object directly. Then calling it. I think I'd have to go through the same set of casts in order to get it to work.\r\n\r\nHowever, one thing I'd rather not do is put more complication into this generated function -- nobody sees the code anywhere. I'd rather have the breaking of const guarantees inside the runtime."}}
{"actor":{"display_login":"schveiguy"}}