{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/orleans/issues/1651","repository_url":"https://api.github.com/repos/dotnet/orleans","labels_url":"https://api.github.com/repos/dotnet/orleans/issues/1651/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/orleans/issues/1651/comments","events_url":"https://api.github.com/repos/dotnet/orleans/issues/1651/events","html_url":"https://github.com/dotnet/orleans/pull/1651","id":146134450,"number":1651,"title":"Generic edge case tests","user":{"login":"jasonholloway","id":6573293,"avatar_url":"https://avatars.githubusercontent.com/u/6573293?v=3","gravatar_id":"","url":"https://api.github.com/users/jasonholloway","html_url":"https://github.com/jasonholloway","followers_url":"https://api.github.com/users/jasonholloway/followers","following_url":"https://api.github.com/users/jasonholloway/following{/other_user}","gists_url":"https://api.github.com/users/jasonholloway/gists{/gist_id}","starred_url":"https://api.github.com/users/jasonholloway/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jasonholloway/subscriptions","organizations_url":"https://api.github.com/users/jasonholloway/orgs","repos_url":"https://api.github.com/users/jasonholloway/repos","events_url":"https://api.github.com/users/jasonholloway/events{/privacy}","received_events_url":"https://api.github.com/users/jasonholloway/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/dotnet/orleans/labels/cla-already-signed","name":"cla-already-signed","color":"009800"}],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2016-04-05T23:12:11Z","updated_at":"2016-04-12T11:27:07Z","closed_at":"2016-04-12T11:27:07Z","pull_request":{"url":"https://api.github.com/repos/dotnet/orleans/pulls/1651","html_url":"https://github.com/dotnet/orleans/pull/1651","diff_url":"https://github.com/dotnet/orleans/pull/1651.diff","patch_url":"https://github.com/dotnet/orleans/pull/1651.patch"},"body":"Just spent an enjoyable evening writing out loads of pedantic generics tests, most of which are contrived edge cases, but are nevertheless in the spirit of normal .NET type behaviour. They all fail except for a couple, and all have been given the 'skip' argument. I've tried to generally cover concrete type resolution, and casting between references, both before and after activation.\r\n\r\nI reckon they should all - in a perfect world - work. In an imperfect world, some should perhaps be \"cleanly disallowed\".\r\n\r\n#1604 may interfere with many of them, but only one of the tests is solved by reverting it.\r\n\r\nA point of interest is that one class declaration breaks the codegen, and has had to be commented out for any other tests to function. I've not looked into this properly, but suspect it's to do with some dictionary within RoslynCodeGen being keyed on interface typecode - and when the below class declaration is encountered, duplicate typecodes are produced and an exception is raised:\r\n\r\n``class GrainClass : IGenericGrain<int>, IGenericGrain<string>``"},"comment":{"url":"https://api.github.com/repos/dotnet/orleans/issues/comments/208856108","html_url":"https://github.com/dotnet/orleans/pull/1651#issuecomment-208856108","issue_url":"https://api.github.com/repos/dotnet/orleans/issues/1651","id":208856108,"user":{"login":"jasonholloway","id":6573293,"avatar_url":"https://avatars.githubusercontent.com/u/6573293?v=3","gravatar_id":"","url":"https://api.github.com/users/jasonholloway","html_url":"https://github.com/jasonholloway","followers_url":"https://api.github.com/users/jasonholloway/followers","following_url":"https://api.github.com/users/jasonholloway/following{/other_user}","gists_url":"https://api.github.com/users/jasonholloway/gists{/gist_id}","starred_url":"https://api.github.com/users/jasonholloway/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jasonholloway/subscriptions","organizations_url":"https://api.github.com/users/jasonholloway/orgs","repos_url":"https://api.github.com/users/jasonholloway/repos","events_url":"https://api.github.com/users/jasonholloway/events{/privacy}","received_events_url":"https://api.github.com/users/jasonholloway/received_events","type":"User","site_admin":false},"created_at":"2016-04-12T11:27:07Z","updated_at":"2016-04-12T11:27:07Z","body":"(if not, I can remove it)"}}