{"action":"created","issue":{"url":"https://api.github.com/repos/sbt/sbt/issues/2414","labels_url":"https://api.github.com/repos/sbt/sbt/issues/2414/labels{/name}","comments_url":"https://api.github.com/repos/sbt/sbt/issues/2414/comments","events_url":"https://api.github.com/repos/sbt/sbt/issues/2414/events","html_url":"https://github.com/sbt/sbt/pull/2414","id":128341875,"number":2414,"title":"[0.13.10] ExtractAPI: avoid unnecessary duplication of defs with primitive types","user":{"login":"smarter","id":63430,"avatar_url":"https://avatars.githubusercontent.com/u/63430?v=3","gravatar_id":"","url":"https://api.github.com/users/smarter","html_url":"https://github.com/smarter","followers_url":"https://api.github.com/users/smarter/followers","following_url":"https://api.github.com/users/smarter/following{/other_user}","gists_url":"https://api.github.com/users/smarter/gists{/gist_id}","starred_url":"https://api.github.com/users/smarter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/smarter/subscriptions","organizations_url":"https://api.github.com/users/smarter/orgs","repos_url":"https://api.github.com/users/smarter/repos","events_url":"https://api.github.com/users/smarter/events{/privacy}","received_events_url":"https://api.github.com/users/smarter/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/sbt/sbt/labels/ready","name":"ready","color":"ededed"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2016-01-23T17:41:41Z","updated_at":"2016-01-25T08:26:23Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/sbt/sbt/pulls/2414","html_url":"https://github.com/sbt/sbt/pull/2414","diff_url":"https://github.com/sbt/sbt/pull/2414.diff","patch_url":"https://github.com/sbt/sbt/pull/2414.patch"},"body":"NOTE: This PR is based on top of https://github.com/sbt/sbt/pull/2413 for convenience because they conflict with each other, but they could be made independent.\r\n\r\n<hr>\r\n\r\nIf a method's type contains a non-primitive value class then it has two\r\nsignatures: one before erasure and one after erasure. Before this\r\ncommit, we checked if this was the case using `isAnyValSubtype`, but\r\nthis is too crude since primitive value classes are also subtypes of\r\n`AnyVal` but do not change signature after erasure.\r\n\r\nThis commit replaces `isAnyValSubtype` by `isDerivedValueClass` which\r\nexcludes primitive value classes.\r\n\r\nIn practice, for an empty class, this reduces the size of the output of\r\n`DefaultShowAPI` from 65 lines to 25 lines.\r\nBefore:\r\nhttps://gist.github.com/smarter/cf1d6fe58efda88d6ee6#file-old-api\r\nAfter:\r\nhttps://gist.github.com/smarter/cf1d6fe58efda88d6ee6#file-new-api\r\n\r\n/cc @Duhemm "},"comment":{"url":"https://api.github.com/repos/sbt/sbt/issues/comments/174435169","html_url":"https://github.com/sbt/sbt/pull/2414#issuecomment-174435169","issue_url":"https://api.github.com/repos/sbt/sbt/issues/2414","id":174435169,"user":{"login":"Duhemm","id":1765926,"avatar_url":"https://avatars.githubusercontent.com/u/1765926?v=3","gravatar_id":"","url":"https://api.github.com/users/Duhemm","html_url":"https://github.com/Duhemm","followers_url":"https://api.github.com/users/Duhemm/followers","following_url":"https://api.github.com/users/Duhemm/following{/other_user}","gists_url":"https://api.github.com/users/Duhemm/gists{/gist_id}","starred_url":"https://api.github.com/users/Duhemm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Duhemm/subscriptions","organizations_url":"https://api.github.com/users/Duhemm/orgs","repos_url":"https://api.github.com/users/Duhemm/repos","events_url":"https://api.github.com/users/Duhemm/events{/privacy}","received_events_url":"https://api.github.com/users/Duhemm/received_events","type":"User","site_admin":false},"created_at":"2016-01-25T08:26:23Z","updated_at":"2016-01-25T08:26:23Z","body":"Thanks for the fixes!"}}