{"action":"created","issue":{"url":"https://api.github.com/repos/FakeItEasy/FakeItEasy/issues/559","repository_url":"https://api.github.com/repos/FakeItEasy/FakeItEasy","labels_url":"https://api.github.com/repos/FakeItEasy/FakeItEasy/issues/559/labels{/name}","comments_url":"https://api.github.com/repos/FakeItEasy/FakeItEasy/issues/559/comments","events_url":"https://api.github.com/repos/FakeItEasy/FakeItEasy/issues/559/events","html_url":"https://github.com/FakeItEasy/FakeItEasy/issues/559","id":116550905,"number":559,"title":"Make A<T>.Ignored throw an exception when it is invoked","user":{"login":"thomaslevesque","id":1864281,"avatar_url":"https://avatars.githubusercontent.com/u/1864281?v=3","gravatar_id":"","url":"https://api.github.com/users/thomaslevesque","html_url":"https://github.com/thomaslevesque","followers_url":"https://api.github.com/users/thomaslevesque/followers","following_url":"https://api.github.com/users/thomaslevesque/following{/other_user}","gists_url":"https://api.github.com/users/thomaslevesque/gists{/gist_id}","starred_url":"https://api.github.com/users/thomaslevesque/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thomaslevesque/subscriptions","organizations_url":"https://api.github.com/users/thomaslevesque/orgs","repos_url":"https://api.github.com/users/thomaslevesque/repos","events_url":"https://api.github.com/users/thomaslevesque/events{/privacy}","received_events_url":"https://api.github.com/users/thomaslevesque/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/FakeItEasy/FakeItEasy/labels/enhancement","name":"enhancement","color":"02e10c"},{"url":"https://api.github.com/repos/FakeItEasy/FakeItEasy/labels/P2","name":"P2","color":"732787"}],"state":"closed","locked":false,"assignee":{"login":"blairconrad","id":3275797,"avatar_url":"https://avatars.githubusercontent.com/u/3275797?v=3","gravatar_id":"","url":"https://api.github.com/users/blairconrad","html_url":"https://github.com/blairconrad","followers_url":"https://api.github.com/users/blairconrad/followers","following_url":"https://api.github.com/users/blairconrad/following{/other_user}","gists_url":"https://api.github.com/users/blairconrad/gists{/gist_id}","starred_url":"https://api.github.com/users/blairconrad/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blairconrad/subscriptions","organizations_url":"https://api.github.com/users/blairconrad/orgs","repos_url":"https://api.github.com/users/blairconrad/repos","events_url":"https://api.github.com/users/blairconrad/events{/privacy}","received_events_url":"https://api.github.com/users/blairconrad/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/FakeItEasy/FakeItEasy/milestones/18","html_url":"https://github.com/FakeItEasy/FakeItEasy/milestones/2.0.0","labels_url":"https://api.github.com/repos/FakeItEasy/FakeItEasy/milestones/18/labels","id":721682,"number":18,"title":"2.0.0","description":"2.0.0 release","creator":{"login":"blairconrad","id":3275797,"avatar_url":"https://avatars.githubusercontent.com/u/3275797?v=3","gravatar_id":"","url":"https://api.github.com/users/blairconrad","html_url":"https://github.com/blairconrad","followers_url":"https://api.github.com/users/blairconrad/followers","following_url":"https://api.github.com/users/blairconrad/following{/other_user}","gists_url":"https://api.github.com/users/blairconrad/gists{/gist_id}","starred_url":"https://api.github.com/users/blairconrad/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blairconrad/subscriptions","organizations_url":"https://api.github.com/users/blairconrad/orgs","repos_url":"https://api.github.com/users/blairconrad/repos","events_url":"https://api.github.com/users/blairconrad/events{/privacy}","received_events_url":"https://api.github.com/users/blairconrad/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":56,"state":"closed","created_at":"2014-07-15T10:38:11Z","updated_at":"2016-05-26T09:50:56Z","due_on":null,"closed_at":"2016-05-26T09:50:56Z"},"comments":28,"created_at":"2015-11-12T13:42:17Z","updated_at":"2016-05-31T17:19:22Z","closed_at":"2016-02-26T11:08:27Z","body":"I know, that sounds crazy... but it's not ;)\r\n\r\n`A<T>.Ignored` (or its shortcut `A<T>._`) is used in call specifications to denote that any value of this argument should be a match. If you have long type names (e.g. `IEnumerable<CustomerInvoiceDetailLine>` or something like that), it can be tempting to do this:\r\n\r\n```\r\nvar any = A<IEnumerable<CustomerInvoiceDetailLine>>.Ignored;\r\nA.CallTo(() => x.PrintInvoiceDetails(any))....\r\n```\r\n\r\nHowever, this doesn't work, because FIE analyzes the expression in `A.CallTo` to detect calls to `A<T>.Ignored`, and in this case the expression doesn't contain it. `A<T>.Ignored` is not meant to actually be called, only to be analyzed as part of the call specification.\r\n\r\nThis can be very confusing to many users, so I think `A<T>.Ignored` should throw an exception (with a message explaining the problem) when it is invoked. It would be better to be able to detect it at compile time, but I don't think it's possible.\r\n\r\n\r\n(this was inspired by [this question about Moq](http://stackoverflow.com/q/33669722/98713), which has the same issue)"},"comment":{"url":"https://api.github.com/repos/FakeItEasy/FakeItEasy/issues/comments/222757552","html_url":"https://github.com/FakeItEasy/FakeItEasy/issues/559#issuecomment-222757552","issue_url":"https://api.github.com/repos/FakeItEasy/FakeItEasy/issues/559","id":222757552,"user":{"login":"blairconrad","id":3275797,"avatar_url":"https://avatars.githubusercontent.com/u/3275797?v=3","gravatar_id":"","url":"https://api.github.com/users/blairconrad","html_url":"https://github.com/blairconrad","followers_url":"https://api.github.com/users/blairconrad/followers","following_url":"https://api.github.com/users/blairconrad/following{/other_user}","gists_url":"https://api.github.com/users/blairconrad/gists{/gist_id}","starred_url":"https://api.github.com/users/blairconrad/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blairconrad/subscriptions","organizations_url":"https://api.github.com/users/blairconrad/orgs","repos_url":"https://api.github.com/users/blairconrad/repos","events_url":"https://api.github.com/users/blairconrad/events{/privacy}","received_events_url":"https://api.github.com/users/blairconrad/received_events","type":"User","site_admin":false},"created_at":"2016-05-31T17:19:22Z","updated_at":"2016-05-31T17:19:22Z","body":"The commit appears to be https://github.com/FakeItEasy/FakeItEasy/pull/619/commits/cc0fe00a144f36091a1e59b979fbe4112695020c.\r\n"}}
{"actor":{"display_login":"blairconrad"}}