{"action":"created","comment":{"url":"https://api.github.com/repos/icsharpcode/ILSpy/pulls/comments/194235297","pull_request_review_id":127374376,"id":194235297,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE5NDIzNTI5Nw==","diff_hunk":"@@ -329,6 +330,96 @@ protected internal override void VisitIfInstruction(IfInstruction inst)\n \n \t\t\tif (new NullableLiftingTransform(context).Run(inst))\n \t\t\t\treturn;\n+\n+\t\t\tif (TransformDynamicAddAssignOrRemoveAssign(inst))\n+\t\t\t\treturn;\n+\t\t}\n+\n+\t\t/// <summary>\n+\t\t/// op is either add or remove/subtract:\n+\t\t/// if (dynamic.isevent (target)) {\n+\t\t///     dynamic.invokemember.invokespecial.discard op_Name(target, value)\n+\t\t/// } else {\n+\t\t///     dynamic.compound.op (dynamic.getmember Name(target), value)\n+\t\t/// }\n+\t\t/// =>\n+\t\t/// dynamic.compound.op (dynamic.getmember Name(target), value)\n+\t\t/// </summary>\n+\t\tbool TransformDynamicAddAssignOrRemoveAssign(IfInstruction inst)\n+\t\t{\n+\t\t\tif (!inst.MatchIfInstructionPositiveCondition(out var condition, out var trueInst, out var falseInst))\n+\t\t\t\treturn false;\n+\t\t\tif (!(condition is DynamicIsEventInstruction isEvent))\n+\t\t\t\treturn false;\n+\t\t\ttrueInst = Block.Unwrap(trueInst);\n+\t\t\tfalseInst = Block.Unwrap(falseInst);\n+\t\t\tif (!(falseInst is DynamicCompoundAssign dynamicCompoundAssign))\n+\t\t\t\treturn false;\n+\t\t\tif (!(dynamicCompoundAssign.Target is DynamicGetMemberInstruction getMember))\n+\t\t\t\treturn false;\n+\t\t\tif (!isEvent.Argument.Match(getMember.Target).Success)\n+\t\t\t\treturn false;\n+\t\t\tif (!(trueInst is DynamicInvokeMemberInstruction invokeMember))\n+\t\t\t\treturn false;\n+\t\t\tif (!(invokeMember.BinderFlags.HasFlag(CSharpBinderFlags.InvokeSpecialName) && invokeMember.BinderFlags.HasFlag(CSharpBinderFlags.ResultDiscarded)))\n+\t\t\t\treturn false;\n+\t\t\tswitch (dynamicCompoundAssign.Operation) {\n+\t\t\t\tcase ExpressionType.AddAssign:\n+\t\t\t\t\tif (invokeMember.Name != \"add_\" + getMember.Name)\n+\t\t\t\t\t\treturn false;\n+\t\t\t\t\tbreak;\n+\t\t\t\tcase ExpressionType.SubtractAssign:\n+\t\t\t\t\tif (invokeMember.Name != \"remove_\" + getMember.Name)\n+\t\t\t\t\t\treturn false;\n+\t\t\t\t\tbreak;\n+\t\t\t\tdefault:\n+\t\t\t\t\treturn false;\n+\t\t\t}\n+\t\t\tif (!dynamicCompoundAssign.Value.Match(invokeMember.Arguments[1]).Success)\n+\t\t\t\treturn false;\n+\t\t\tif (!invokeMember.Arguments[0].Match(getMember.Target).Success)\n+\t\t\t\treturn false;\n+\t\t\tcontext.Step(\"+= / -= dynamic.isevent pattern -> dynamic.compound.op\", inst);\n+\t\t\tinst.ReplaceWith(dynamicCompoundAssign);\n+\t\t\tif (getMember.Target.MatchLdLoc(out var v) && v.Kind == VariableKind.Local && v.IsSingleDefinition && v.LoadCount == 1 && v.StoreInstructions[0] is StLoc initStore) {\n+\t\t\t\tif (ILInlining.CanInlineInto(dynamicCompoundAssign, v, initStore.Value)) {\n+\t\t\t\t\t// HACK: if inlining is possible, we can 'cheat' a bit and change the variable kind to StackSlot\n+\t\t\t\t\t// so inlining or copy propagation will take care of the extra compiler-generated local.\n+\t\t\t\t\tv.Kind = VariableKind.StackSlot;","path":"ICSharpCode.Decompiler/IL/Transforms/ExpressionTransforms.cs","position":76,"original_position":76,"commit_id":"669dc0ad59ed19687087bc85302bd4f3f63b5c36","original_commit_id":"669dc0ad59ed19687087bc85302bd4f3f63b5c36","user":{"login":"dgrunwald","id":243140,"node_id":"MDQ6VXNlcjI0MzE0MA==","avatar_url":"https://avatars3.githubusercontent.com/u/243140?v=4","gravatar_id":"","url":"https://api.github.com/users/dgrunwald","html_url":"https://github.com/dgrunwald","followers_url":"https://api.github.com/users/dgrunwald/followers","following_url":"https://api.github.com/users/dgrunwald/following{/other_user}","gists_url":"https://api.github.com/users/dgrunwald/gists{/gist_id}","starred_url":"https://api.github.com/users/dgrunwald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dgrunwald/subscriptions","organizations_url":"https://api.github.com/users/dgrunwald/orgs","repos_url":"https://api.github.com/users/dgrunwald/repos","events_url":"https://api.github.com/users/dgrunwald/events{/privacy}","received_events_url":"https://api.github.com/users/dgrunwald/received_events","type":"User","site_admin":false},"body":"This is better done by extending `ILInlining.NonAggressiveInlineInto()`","created_at":"2018-06-09T18:10:35Z","updated_at":"2018-06-09T18:20:05Z","html_url":"https://github.com/icsharpcode/ILSpy/pull/1165#discussion_r194235297","pull_request_url":"https://api.github.com/repos/icsharpcode/ILSpy/pulls/1165","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/icsharpcode/ILSpy/pulls/comments/194235297"},"html":{"href":"https://github.com/icsharpcode/ILSpy/pull/1165#discussion_r194235297"},"pull_request":{"href":"https://api.github.com/repos/icsharpcode/ILSpy/pulls/1165"}}},"pull_request":{"url":"https://api.github.com/repos/icsharpcode/ILSpy/pulls/1165","id":193007182,"node_id":"MDExOlB1bGxSZXF1ZXN0MTkzMDA3MTgy","html_url":"https://github.com/icsharpcode/ILSpy/pull/1165","diff_url":"https://github.com/icsharpcode/ILSpy/pull/1165.diff","patch_url":"https://github.com/icsharpcode/ILSpy/pull/1165.patch","issue_url":"https://api.github.com/repos/icsharpcode/ILSpy/issues/1165","number":1165,"state":"open","locked":false,"title":"Dynamic support","user":{"login":"siegfriedpammer","id":344204,"node_id":"MDQ6VXNlcjM0NDIwNA==","avatar_url":"https://avatars3.githubusercontent.com/u/344204?v=4","gravatar_id":"","url":"https://api.github.com/users/siegfriedpammer","html_url":"https://github.com/siegfriedpammer","followers_url":"https://api.github.com/users/siegfriedpammer/followers","following_url":"https://api.github.com/users/siegfriedpammer/following{/other_user}","gists_url":"https://api.github.com/users/siegfriedpammer/gists{/gist_id}","starred_url":"https://api.github.com/users/siegfriedpammer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/siegfriedpammer/subscriptions","organizations_url":"https://api.github.com/users/siegfriedpammer/orgs","repos_url":"https://api.github.com/users/siegfriedpammer/repos","events_url":"https://api.github.com/users/siegfriedpammer/events{/privacy}","received_events_url":"https://api.github.com/users/siegfriedpammer/received_events","type":"User","site_admin":false},"body":"Adds basic support for general dynamic expressions.\r\n\r\nTODO:\r\n* complex logical expressions involving IsTrue, IsFalse operators need some beautification.","created_at":"2018-06-06T13:07:12Z","updated_at":"2018-06-09T18:20:05Z","closed_at":null,"merged_at":null,"merge_commit_sha":"bc246822499c90e676043bae73b436951aa5e4fa","assignee":{"login":"siegfriedpammer","id":344204,"node_id":"MDQ6VXNlcjM0NDIwNA==","avatar_url":"https://avatars3.githubusercontent.com/u/344204?v=4","gravatar_id":"","url":"https://api.github.com/users/siegfriedpammer","html_url":"https://github.com/siegfriedpammer","followers_url":"https://api.github.com/users/siegfriedpammer/followers","following_url":"https://api.github.com/users/siegfriedpammer/following{/other_user}","gists_url":"https://api.github.com/users/siegfriedpammer/gists{/gist_id}","starred_url":"https://api.github.com/users/siegfriedpammer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/siegfriedpammer/subscriptions","organizations_url":"https://api.github.com/users/siegfriedpammer/orgs","repos_url":"https://api.github.com/users/siegfriedpammer/repos","events_url":"https://api.github.com/users/siegfriedpammer/events{/privacy}","received_events_url":"https://api.github.com/users/siegfriedpammer/received_events","type":"User","site_admin":false},"assignees":[{"login":"siegfriedpammer","id":344204,"node_id":"MDQ6VXNlcjM0NDIwNA==","avatar_url":"https://avatars3.githubusercontent.com/u/344204?v=4","gravatar_id":"","url":"https://api.github.com/users/siegfriedpammer","html_url":"https://github.com/siegfriedpammer","followers_url":"https://api.github.com/users/siegfriedpammer/followers","following_url":"https://api.github.com/users/siegfriedpammer/following{/other_user}","gists_url":"https://api.github.com/users/siegfriedpammer/gists{/gist_id}","starred_url":"https://api.github.com/users/siegfriedpammer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/siegfriedpammer/subscriptions","organizations_url":"https://api.github.com/users/siegfriedpammer/orgs","repos_url":"https://api.github.com/users/siegfriedpammer/repos","events_url":"https://api.github.com/users/siegfriedpammer/events{/privacy}","received_events_url":"https://api.github.com/users/siegfriedpammer/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/icsharpcode/ILSpy/pulls/1165/commits","review_comments_url":"https://api.github.com/repos/icsharpcode/ILSpy/pulls/1165/comments","review_comment_url":"https://api.github.com/repos/icsharpcode/ILSpy/pulls/comments{/number}","comments_url":"https://api.github.com/repos/icsharpcode/ILSpy/issues/1165/comments","statuses_url":"https://api.github.com/repos/icsharpcode/ILSpy/statuses/669dc0ad59ed19687087bc85302bd4f3f63b5c36","head":{"label":"icsharpcode:dynamic","ref":"dynamic","sha":"669dc0ad59ed19687087bc85302bd4f3f63b5c36","user":{"login":"icsharpcode","id":343434,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM0MzQzNA==","avatar_url":"https://avatars2.githubusercontent.com/u/343434?v=4","gravatar_id":"","url":"https://api.github.com/users/icsharpcode","html_url":"https://github.com/icsharpcode","followers_url":"https://api.github.com/users/icsharpcode/followers","following_url":"https://api.github.com/users/icsharpcode/following{/other_user}","gists_url":"https://api.github.com/users/icsharpcode/gists{/gist_id}","starred_url":"https://api.github.com/users/icsharpcode/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/icsharpcode/subscriptions","organizations_url":"https://api.github.com/users/icsharpcode/orgs","repos_url":"https://api.github.com/users/icsharpcode/repos","events_url":"https://api.github.com/users/icsharpcode/events{/privacy}","received_events_url":"https://api.github.com/users/icsharpcode/received_events","type":"Organization","site_admin":false},"repo":{"id":1327739,"node_id":"MDEwOlJlcG9zaXRvcnkxMzI3NzM5","name":"ILSpy","full_name":"icsharpcode/ILSpy","owner":{"login":"icsharpcode","id":343434,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM0MzQzNA==","avatar_url":"https://avatars2.githubusercontent.com/u/343434?v=4","gravatar_id":"","url":"https://api.github.com/users/icsharpcode","html_url":"https://github.com/icsharpcode","followers_url":"https://api.github.com/users/icsharpcode/followers","following_url":"https://api.github.com/users/icsharpcode/following{/other_user}","gists_url":"https://api.github.com/users/icsharpcode/gists{/gist_id}","starred_url":"https://api.github.com/users/icsharpcode/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/icsharpcode/subscriptions","organizations_url":"https://api.github.com/users/icsharpcode/orgs","repos_url":"https://api.github.com/users/icsharpcode/repos","events_url":"https://api.github.com/users/icsharpcode/events{/privacy}","received_events_url":"https://api.github.com/users/icsharpcode/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/icsharpcode/ILSpy","description":".NET Decompiler","fork":false,"url":"https://api.github.com/repos/icsharpcode/ILSpy","forks_url":"https://api.github.com/repos/icsharpcode/ILSpy/forks","keys_url":"https://api.github.com/repos/icsharpcode/ILSpy/keys{/key_id}","collaborators_url":"https://api.github.com/repos/icsharpcode/ILSpy/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/icsharpcode/ILSpy/teams","hooks_url":"https://api.github.com/repos/icsharpcode/ILSpy/hooks","issue_events_url":"https://api.github.com/repos/icsharpcode/ILSpy/issues/events{/number}","events_url":"https://api.github.com/repos/icsharpcode/ILSpy/events","assignees_url":"https://api.github.com/repos/icsharpcode/ILSpy/assignees{/user}","branches_url":"https://api.github.com/repos/icsharpcode/ILSpy/branches{/branch}","tags_url":"https://api.github.com/repos/icsharpcode/ILSpy/tags","blobs_url":"https://api.github.com/repos/icsharpcode/ILSpy/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/icsharpcode/ILSpy/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/icsharpcode/ILSpy/git/refs{/sha}","trees_url":"https://api.github.com/repos/icsharpcode/ILSpy/git/trees{/sha}","statuses_url":"https://api.github.com/repos/icsharpcode/ILSpy/statuses/{sha}","languages_url":"https://api.github.com/repos/icsharpcode/ILSpy/languages","stargazers_url":"https://api.github.com/repos/icsharpcode/ILSpy/stargazers","contributors_url":"https://api.github.com/repos/icsharpcode/ILSpy/contributors","subscribers_url":"https://api.github.com/repos/icsharpcode/ILSpy/subscribers","subscription_url":"https://api.github.com/repos/icsharpcode/ILSpy/subscription","commits_url":"https://api.github.com/repos/icsharpcode/ILSpy/commits{/sha}","git_commits_url":"https://api.github.com/repos/icsharpcode/ILSpy/git/commits{/sha}","comments_url":"https://api.github.com/repos/icsharpcode/ILSpy/comments{/number}","issue_comment_url":"https://api.github.com/repos/icsharpcode/ILSpy/issues/comments{/number}","contents_url":"https://api.github.com/repos/icsharpcode/ILSpy/contents/{+path}","compare_url":"https://api.github.com/repos/icsharpcode/ILSpy/compare/{base}...{head}","merges_url":"https://api.github.com/repos/icsharpcode/ILSpy/merges","archive_url":"https://api.github.com/repos/icsharpcode/ILSpy/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/icsharpcode/ILSpy/downloads","issues_url":"https://api.github.com/repos/icsharpcode/ILSpy/issues{/number}","pulls_url":"https://api.github.com/repos/icsharpcode/ILSpy/pulls{/number}","milestones_url":"https://api.github.com/repos/icsharpcode/ILSpy/milestones{/number}","notifications_url":"https://api.github.com/repos/icsharpcode/ILSpy/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/icsharpcode/ILSpy/labels{/name}","releases_url":"https://api.github.com/repos/icsharpcode/ILSpy/releases{/id}","deployments_url":"https://api.github.com/repos/icsharpcode/ILSpy/deployments","created_at":"2011-02-04T11:24:20Z","updated_at":"2018-06-09T17:13:56Z","pushed_at":"2018-06-09T17:27:59Z","git_url":"git://github.com/icsharpcode/ILSpy.git","ssh_url":"git@github.com:icsharpcode/ILSpy.git","clone_url":"https://github.com/icsharpcode/ILSpy.git","svn_url":"https://github.com/icsharpcode/ILSpy","homepage":"http://www.ilspy.net/","size":27459,"stargazers_count":5326,"watchers_count":5326,"language":"C#","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":1327,"mirror_url":null,"archived":false,"open_issues_count":113,"license":null,"forks":1327,"open_issues":113,"watchers":5326,"default_branch":"master"}},"base":{"label":"icsharpcode:master","ref":"master","sha":"13e6d7230866667af967848d3e41458889bcf5d3","user":{"login":"icsharpcode","id":343434,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM0MzQzNA==","avatar_url":"https://avatars2.githubusercontent.com/u/343434?v=4","gravatar_id":"","url":"https://api.github.com/users/icsharpcode","html_url":"https://github.com/icsharpcode","followers_url":"https://api.github.com/users/icsharpcode/followers","following_url":"https://api.github.com/users/icsharpcode/following{/other_user}","gists_url":"https://api.github.com/users/icsharpcode/gists{/gist_id}","starred_url":"https://api.github.com/users/icsharpcode/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/icsharpcode/subscriptions","organizations_url":"https://api.github.com/users/icsharpcode/orgs","repos_url":"https://api.github.com/users/icsharpcode/repos","events_url":"https://api.github.com/users/icsharpcode/events{/privacy}","received_events_url":"https://api.github.com/users/icsharpcode/received_events","type":"Organization","site_admin":false},"repo":{"id":1327739,"node_id":"MDEwOlJlcG9zaXRvcnkxMzI3NzM5","name":"ILSpy","full_name":"icsharpcode/ILSpy","owner":{"login":"icsharpcode","id":343434,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM0MzQzNA==","avatar_url":"https://avatars2.githubusercontent.com/u/343434?v=4","gravatar_id":"","url":"https://api.github.com/users/icsharpcode","html_url":"https://github.com/icsharpcode","followers_url":"https://api.github.com/users/icsharpcode/followers","following_url":"https://api.github.com/users/icsharpcode/following{/other_user}","gists_url":"https://api.github.com/users/icsharpcode/gists{/gist_id}","starred_url":"https://api.github.com/users/icsharpcode/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/icsharpcode/subscriptions","organizations_url":"https://api.github.com/users/icsharpcode/orgs","repos_url":"https://api.github.com/users/icsharpcode/repos","events_url":"https://api.github.com/users/icsharpcode/events{/privacy}","received_events_url":"https://api.github.com/users/icsharpcode/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/icsharpcode/ILSpy","description":".NET Decompiler","fork":false,"url":"https://api.github.com/repos/icsharpcode/ILSpy","forks_url":"https://api.github.com/repos/icsharpcode/ILSpy/forks","keys_url":"https://api.github.com/repos/icsharpcode/ILSpy/keys{/key_id}","collaborators_url":"https://api.github.com/repos/icsharpcode/ILSpy/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/icsharpcode/ILSpy/teams","hooks_url":"https://api.github.com/repos/icsharpcode/ILSpy/hooks","issue_events_url":"https://api.github.com/repos/icsharpcode/ILSpy/issues/events{/number}","events_url":"https://api.github.com/repos/icsharpcode/ILSpy/events","assignees_url":"https://api.github.com/repos/icsharpcode/ILSpy/assignees{/user}","branches_url":"https://api.github.com/repos/icsharpcode/ILSpy/branches{/branch}","tags_url":"https://api.github.com/repos/icsharpcode/ILSpy/tags","blobs_url":"https://api.github.com/repos/icsharpcode/ILSpy/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/icsharpcode/ILSpy/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/icsharpcode/ILSpy/git/refs{/sha}","trees_url":"https://api.github.com/repos/icsharpcode/ILSpy/git/trees{/sha}","statuses_url":"https://api.github.com/repos/icsharpcode/ILSpy/statuses/{sha}","languages_url":"https://api.github.com/repos/icsharpcode/ILSpy/languages","stargazers_url":"https://api.github.com/repos/icsharpcode/ILSpy/stargazers","contributors_url":"https://api.github.com/repos/icsharpcode/ILSpy/contributors","subscribers_url":"https://api.github.com/repos/icsharpcode/ILSpy/subscribers","subscription_url":"https://api.github.com/repos/icsharpcode/ILSpy/subscription","commits_url":"https://api.github.com/repos/icsharpcode/ILSpy/commits{/sha}","git_commits_url":"https://api.github.com/repos/icsharpcode/ILSpy/git/commits{/sha}","comments_url":"https://api.github.com/repos/icsharpcode/ILSpy/comments{/number}","issue_comment_url":"https://api.github.com/repos/icsharpcode/ILSpy/issues/comments{/number}","contents_url":"https://api.github.com/repos/icsharpcode/ILSpy/contents/{+path}","compare_url":"https://api.github.com/repos/icsharpcode/ILSpy/compare/{base}...{head}","merges_url":"https://api.github.com/repos/icsharpcode/ILSpy/merges","archive_url":"https://api.github.com/repos/icsharpcode/ILSpy/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/icsharpcode/ILSpy/downloads","issues_url":"https://api.github.com/repos/icsharpcode/ILSpy/issues{/number}","pulls_url":"https://api.github.com/repos/icsharpcode/ILSpy/pulls{/number}","milestones_url":"https://api.github.com/repos/icsharpcode/ILSpy/milestones{/number}","notifications_url":"https://api.github.com/repos/icsharpcode/ILSpy/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/icsharpcode/ILSpy/labels{/name}","releases_url":"https://api.github.com/repos/icsharpcode/ILSpy/releases{/id}","deployments_url":"https://api.github.com/repos/icsharpcode/ILSpy/deployments","created_at":"2011-02-04T11:24:20Z","updated_at":"2018-06-09T17:13:56Z","pushed_at":"2018-06-09T17:27:59Z","git_url":"git://github.com/icsharpcode/ILSpy.git","ssh_url":"git@github.com:icsharpcode/ILSpy.git","clone_url":"https://github.com/icsharpcode/ILSpy.git","svn_url":"https://github.com/icsharpcode/ILSpy","homepage":"http://www.ilspy.net/","size":27459,"stargazers_count":5326,"watchers_count":5326,"language":"C#","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":1327,"mirror_url":null,"archived":false,"open_issues_count":113,"license":null,"forks":1327,"open_issues":113,"watchers":5326,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/icsharpcode/ILSpy/pulls/1165"},"html":{"href":"https://github.com/icsharpcode/ILSpy/pull/1165"},"issue":{"href":"https://api.github.com/repos/icsharpcode/ILSpy/issues/1165"},"comments":{"href":"https://api.github.com/repos/icsharpcode/ILSpy/issues/1165/comments"},"review_comments":{"href":"https://api.github.com/repos/icsharpcode/ILSpy/pulls/1165/comments"},"review_comment":{"href":"https://api.github.com/repos/icsharpcode/ILSpy/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/icsharpcode/ILSpy/pulls/1165/commits"},"statuses":{"href":"https://api.github.com/repos/icsharpcode/ILSpy/statuses/669dc0ad59ed19687087bc85302bd4f3f63b5c36"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"dgrunwald"}}