{"action":"created","issue":{"url":"https://api.github.com/repos/orocos-toolchain/orogen/issues/73","repository_url":"https://api.github.com/repos/orocos-toolchain/orogen","labels_url":"https://api.github.com/repos/orocos-toolchain/orogen/issues/73/labels{/name}","comments_url":"https://api.github.com/repos/orocos-toolchain/orogen/issues/73/comments","events_url":"https://api.github.com/repos/orocos-toolchain/orogen/issues/73/events","html_url":"https://github.com/orocos-toolchain/orogen/pull/73","id":126215628,"number":73,"title":"opaque type equality should be checked by typename instead of type member equality","user":{"login":"saarnold","id":7925487,"avatar_url":"https://avatars.githubusercontent.com/u/7925487?v=3","gravatar_id":"","url":"https://api.github.com/users/saarnold","html_url":"https://github.com/saarnold","followers_url":"https://api.github.com/users/saarnold/followers","following_url":"https://api.github.com/users/saarnold/following{/other_user}","gists_url":"https://api.github.com/users/saarnold/gists{/gist_id}","starred_url":"https://api.github.com/users/saarnold/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/saarnold/subscriptions","organizations_url":"https://api.github.com/users/saarnold/orgs","repos_url":"https://api.github.com/users/saarnold/repos","events_url":"https://api.github.com/users/saarnold/events{/privacy}","received_events_url":"https://api.github.com/users/saarnold/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2016-01-12T16:21:10Z","updated_at":"2016-03-01T13:28:32Z","closed_at":"2016-03-01T13:28:24Z","pull_request":{"url":"https://api.github.com/repos/orocos-toolchain/orogen/pulls/73","html_url":"https://github.com/orocos-toolchain/orogen/pull/73","diff_url":"https://github.com/orocos-toolchain/orogen/pull/73.diff","patch_url":"https://github.com/orocos-toolchain/orogen/pull/73.patch"},"body":"Currently opaque type equality is checked using the == operator which calls `do_compare` in typelib. And I guess that it is intentional that it checks for equal member types and offsets and doesn't check the name of the type.\r\n\r\nBut in the case two opaques are defined having the same members. E.g.:\r\n```\r\nstruct ClassAWrapper\r\n{\r\n    std::vector<uint8_t> bin;\r\n};\r\n\r\nstruct ClassBWrapper\r\n{\r\n    std::vector<uint8_t> bin;\r\n};\r\n```\r\nthey currently both resolve in the same opaque type ClassA.\r\nSo I think comparing the type name instead of the type would be the right thing to do here."},"comment":{"url":"https://api.github.com/repos/orocos-toolchain/orogen/issues/comments/190724428","html_url":"https://github.com/orocos-toolchain/orogen/pull/73#issuecomment-190724428","issue_url":"https://api.github.com/repos/orocos-toolchain/orogen/issues/73","id":190724428,"user":{"login":"doudou","id":292,"avatar_url":"https://avatars.githubusercontent.com/u/292?v=3","gravatar_id":"","url":"https://api.github.com/users/doudou","html_url":"https://github.com/doudou","followers_url":"https://api.github.com/users/doudou/followers","following_url":"https://api.github.com/users/doudou/following{/other_user}","gists_url":"https://api.github.com/users/doudou/gists{/gist_id}","starred_url":"https://api.github.com/users/doudou/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/doudou/subscriptions","organizations_url":"https://api.github.com/users/doudou/orgs","repos_url":"https://api.github.com/users/doudou/repos","events_url":"https://api.github.com/users/doudou/events{/privacy}","received_events_url":"https://api.github.com/users/doudou/received_events","type":"User","site_admin":false},"created_at":"2016-03-01T13:28:32Z","updated_at":"2016-03-01T13:28:32Z","body":"Merged. Sorry for the delay"}}