{"action":"created","issue":{"url":"https://api.github.com/repos/lsegal/yard-go/issues/3","labels_url":"https://api.github.com/repos/lsegal/yard-go/issues/3/labels{/name}","comments_url":"https://api.github.com/repos/lsegal/yard-go/issues/3/comments","events_url":"https://api.github.com/repos/lsegal/yard-go/issues/3/events","html_url":"https://github.com/lsegal/yard-go/issues/3","id":100329928,"number":3,"title":"structs with methods, which all are inherited, are not recognized as classes but as bare_structs","user":{"login":"MalteJ","id":646688,"avatar_url":"https://avatars.githubusercontent.com/u/646688?v=3","gravatar_id":"","url":"https://api.github.com/users/MalteJ","html_url":"https://github.com/MalteJ","followers_url":"https://api.github.com/users/MalteJ/followers","following_url":"https://api.github.com/users/MalteJ/following{/other_user}","gists_url":"https://api.github.com/users/MalteJ/gists{/gist_id}","starred_url":"https://api.github.com/users/MalteJ/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MalteJ/subscriptions","organizations_url":"https://api.github.com/users/MalteJ/orgs","repos_url":"https://api.github.com/users/MalteJ/repos","events_url":"https://api.github.com/users/MalteJ/events{/privacy}","received_events_url":"https://api.github.com/users/MalteJ/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-08-11T14:47:55Z","updated_at":"2015-08-12T08:53:59Z","closed_at":null,"body":"e.g.\r\n\r\n    package foo\r\n    \r\n    type Bar struct {\r\n        Abc string\r\n    }\r\n    \r\n    func (b *Bar) DoSomething() {\r\n    }\r\n    \r\n    type Baz struct {\r\n        Bar\r\n        Xyz string\r\n    }\r\n\r\nBaz will be recognized as bare_struct."},"comment":{"url":"https://api.github.com/repos/lsegal/yard-go/issues/comments/130221276","html_url":"https://github.com/lsegal/yard-go/issues/3#issuecomment-130221276","issue_url":"https://api.github.com/repos/lsegal/yard-go/issues/3","id":130221276,"user":{"login":"lsegal","id":686,"avatar_url":"https://avatars.githubusercontent.com/u/686?v=3","gravatar_id":"","url":"https://api.github.com/users/lsegal","html_url":"https://github.com/lsegal","followers_url":"https://api.github.com/users/lsegal/followers","following_url":"https://api.github.com/users/lsegal/following{/other_user}","gists_url":"https://api.github.com/users/lsegal/gists{/gist_id}","starred_url":"https://api.github.com/users/lsegal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lsegal/subscriptions","organizations_url":"https://api.github.com/users/lsegal/orgs","repos_url":"https://api.github.com/users/lsegal/repos","events_url":"https://api.github.com/users/lsegal/events{/privacy}","received_events_url":"https://api.github.com/users/lsegal/received_events","type":"User","site_admin":false},"created_at":"2015-08-12T08:53:59Z","updated_at":"2015-08-12T08:53:59Z","body":"I would accept a patch that switched Baz into a full on struct object if anonymous composition was detected in the struct field definitions. Pretty sure you could detect this before Baz is initially created, so you don't need to \"convert\" it. \r\n\r\nSee [this part of the codebase](https://github.com/lsegal/yard-go/blob/master/lib/yard-go/handlers.rb#L44-L48) for context. Basically, the \"is bare struct?\" heuristic needs a few more toggles (like, do you have anonymous struct fields and do those fields have methods?)"}}