{"action":"created","comment":{"url":"https://api.github.com/repos/dotnet/roslyn/pulls/comments/234320097","pull_request_review_id":175945163,"id":234320097,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIzNDMyMDA5Nw==","diff_hunk":"@@ -1452,6 +1453,280 @@ static void Main()\n             CreateCompilation(source).VerifyDiagnostics();\n         }\n \n+        [Fact]\n+        public void UsingPatternAsyncTest()\n+        {\n+            var source = @\"\n+namespace System\n+{\n+    public interface IAsyncDisposable\n+    {\n+        System.Threading.Tasks.ValueTask DisposeAsync();\n+    }\n+}\n+class C1\n+{\n+    public C1() { }\n+    public System.Threading.Tasks.ValueTask DisposeAsync() { System.Console.WriteLine(\"\"Dispose async\"\"); return new System.Threading.Tasks.ValueTask(System.Threading.Tasks.Task.CompletedTask); }\n+}\n+\n+class C2\n+{\n+    static async System.Threading.Tasks.Task Main()\n+    {\n+        await using (C1 c = new C1())\n+        {\n+        }\n+    }\n+}\";\n+            var compilation = CreateCompilationWithTasksExtensions(source, options: TestOptions.DebugExe).VerifyDiagnostics();\n+\n+            CompileAndVerify(compilation, expectedOutput: \"Dispose async\");\n+        }\n+\n+        [Fact]\n+        public void UsingPatternAsyncWithTaskLikeReturnTest()\n+        {\n+            var source = @\"\n+using System;\n+using System.Runtime.CompilerServices;\n+namespace System\n+{\n+    public interface IAsyncDisposable\n+    {\n+        System.Threading.Tasks.ValueTask DisposeAsync();\n+    }\n+}\n+class C1\n+{\n+    public C1() { }\n+    public System.Threading.Tasks.Task DisposeAsync() { return System.Threading.Tasks.Task.CompletedTask; }\n+}\n+\n+class C2\n+{\n+    public C2() { }\n+    public MyTask DisposeAsync() { return new MyTask(); }\n+}\n+\n+[AsyncMethodBuilder(typeof(MyTaskMethodBuilder))]\n+struct MyTask\n+{\n+    internal Awaiter GetAwaiter() => new Awaiter();\n+    internal class Awaiter : INotifyCompletion\n+    {\n+        public void OnCompleted(Action a) { }\n+        internal bool IsCompleted => true;\n+        internal void GetResult() { }\n+    }\n+}\n+\n+struct MyTaskMethodBuilder\n+{\n+    private MyTask _task;\n+    public static MyTaskMethodBuilder Create() => new MyTaskMethodBuilder(new MyTask());\n+    internal MyTaskMethodBuilder(MyTask task)\n+    {\n+        _task = task;\n+    }\n+    public void SetStateMachine(IAsyncStateMachine stateMachine) { }\n+    public void Start<TStateMachine>(ref TStateMachine stateMachine) where TStateMachine : IAsyncStateMachine\n+    {\n+        stateMachine.MoveNext();\n+    }\n+    public void SetException(Exception e) { }\n+    public void SetResult() { }\n+    public void AwaitOnCompleted<TAwaiter, TStateMachine>(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : INotifyCompletion where TStateMachine : IAsyncStateMachine { }\n+    public void AwaitUnsafeOnCompleted<TAwaiter, TStateMachine>(ref TAwaiter awaiter, ref TStateMachine stateMachine) where TAwaiter : ICriticalNotifyCompletion where TStateMachine : IAsyncStateMachine { }\n+    public MyTask Task => _task;\n+}\n+\n+\n+\n+class C3\n+{\n+    static async System.Threading.Tasks.Task Main()\n+    {\n+        await using (C1 c = new C1())\n+        {\n+        }\n+\n+        await using (C2 c = new C2())\n+        {\n+        }\n+    }\n+}\";\n+            CreateCompilationWithTasksExtensions(source).VerifyDiagnostics();\n+        }\n+\n+        [Fact]\n+        public void UsingPatternAsyncNoAwaitTest()\n+        {\n+            var source = @\"\n+namespace System\n+{\n+    public interface IAsyncDisposable\n+    {\n+        System.Threading.Tasks.ValueTask DisposeAsync();\n+    }\n+}\n+class C1\n+{\n+    public C1() { }\n+    public System.Threading.Tasks.ValueTask DisposeAsync() { return new System.Threading.Tasks.ValueTask(System.Threading.Tasks.Task.CompletedTask); }\n+}\n+\n+class C2\n+{\n+    static async System.Threading.Tasks.Task Main()\n+    {\n+        using (C1 c = new C1())\n+        {\n+        }\n+    }\n+}\";\n+            CreateCompilationWithTasksExtensions(source).VerifyDiagnostics(\n+                // (17,46): warning CS1998: This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread.\n+                //     static async System.Threading.Tasks.Task Main()\n+                Diagnostic(ErrorCode.WRN_AsyncLacksAwaits, \"Main\").WithLocation(17, 46),\n+                // (19,16): error CS1674: 'C1': type used in a using statement must be implicitly convertible to 'System.IDisposable' or have a public void-returning Dispose() instance method.","path":"src/Compilers/CSharp/Test/Semantic/Semantics/UsingStatementTests.cs","position":148,"original_position":148,"commit_id":"244b07d96c2760d627907716eeda38ea679256ce","original_commit_id":"244b07d96c2760d627907716eeda38ea679256ce","user":{"login":"jcouv","id":12466233,"node_id":"MDQ6VXNlcjEyNDY2MjMz","avatar_url":"https://avatars2.githubusercontent.com/u/12466233?v=4","gravatar_id":"","url":"https://api.github.com/users/jcouv","html_url":"https://github.com/jcouv","followers_url":"https://api.github.com/users/jcouv/followers","following_url":"https://api.github.com/users/jcouv/following{/other_user}","gists_url":"https://api.github.com/users/jcouv/gists{/gist_id}","starred_url":"https://api.github.com/users/jcouv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jcouv/subscriptions","organizations_url":"https://api.github.com/users/jcouv/orgs","repos_url":"https://api.github.com/users/jcouv/repos","events_url":"https://api.github.com/users/jcouv/events{/privacy}","received_events_url":"https://api.github.com/users/jcouv/received_events","type":"User","site_admin":false},"body":">instance [](start = 176, length = 8)\r\n\r\nIs the instance part of the message correct? I thought extension methods could fulfill the pattern.","created_at":"2018-11-16T19:21:05Z","updated_at":"2018-11-16T19:21:06Z","html_url":"https://github.com/dotnet/roslyn/pull/31201#discussion_r234320097","pull_request_url":"https://api.github.com/repos/dotnet/roslyn/pulls/31201","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/dotnet/roslyn/pulls/comments/234320097"},"html":{"href":"https://github.com/dotnet/roslyn/pull/31201#discussion_r234320097"},"pull_request":{"href":"https://api.github.com/repos/dotnet/roslyn/pulls/31201"}}},"pull_request":{"url":"https://api.github.com/repos/dotnet/roslyn/pulls/31201","id":231365555,"node_id":"MDExOlB1bGxSZXF1ZXN0MjMxMzY1NTU1","html_url":"https://github.com/dotnet/roslyn/pull/31201","diff_url":"https://github.com/dotnet/roslyn/pull/31201.diff","patch_url":"https://github.com/dotnet/roslyn/pull/31201.patch","issue_url":"https://api.github.com/repos/dotnet/roslyn/issues/31201","number":31201,"state":"open","locked":false,"title":"Implement async pattern dispose","user":{"login":"chsienki","id":16246502,"node_id":"MDQ6VXNlcjE2MjQ2NTAy","avatar_url":"https://avatars1.githubusercontent.com/u/16246502?v=4","gravatar_id":"","url":"https://api.github.com/users/chsienki","html_url":"https://github.com/chsienki","followers_url":"https://api.github.com/users/chsienki/followers","following_url":"https://api.github.com/users/chsienki/following{/other_user}","gists_url":"https://api.github.com/users/chsienki/gists{/gist_id}","starred_url":"https://api.github.com/users/chsienki/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chsienki/subscriptions","organizations_url":"https://api.github.com/users/chsienki/orgs","repos_url":"https://api.github.com/users/chsienki/repos","events_url":"https://api.github.com/users/chsienki/events{/privacy}","received_events_url":"https://api.github.com/users/chsienki/received_events","type":"User","site_admin":false},"body":"Enable pattern async dispose: \r\n- Search for a task-like returning DisposeAsync when await is present\r\n- Correctly lower awaitable pattern methods\r\n- Add tests\r\n\r\nSome basic declaration statement refactoring","created_at":"2018-11-15T23:10:57Z","updated_at":"2018-11-16T19:21:06Z","closed_at":null,"merged_at":null,"merge_commit_sha":"fe3d29321b330f1fb6df1562768b45632c4f0daf","assignee":{"login":"jcouv","id":12466233,"node_id":"MDQ6VXNlcjEyNDY2MjMz","avatar_url":"https://avatars2.githubusercontent.com/u/12466233?v=4","gravatar_id":"","url":"https://api.github.com/users/jcouv","html_url":"https://github.com/jcouv","followers_url":"https://api.github.com/users/jcouv/followers","following_url":"https://api.github.com/users/jcouv/following{/other_user}","gists_url":"https://api.github.com/users/jcouv/gists{/gist_id}","starred_url":"https://api.github.com/users/jcouv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jcouv/subscriptions","organizations_url":"https://api.github.com/users/jcouv/orgs","repos_url":"https://api.github.com/users/jcouv/repos","events_url":"https://api.github.com/users/jcouv/events{/privacy}","received_events_url":"https://api.github.com/users/jcouv/received_events","type":"User","site_admin":false},"assignees":[{"login":"jcouv","id":12466233,"node_id":"MDQ6VXNlcjEyNDY2MjMz","avatar_url":"https://avatars2.githubusercontent.com/u/12466233?v=4","gravatar_id":"","url":"https://api.github.com/users/jcouv","html_url":"https://github.com/jcouv","followers_url":"https://api.github.com/users/jcouv/followers","following_url":"https://api.github.com/users/jcouv/following{/other_user}","gists_url":"https://api.github.com/users/jcouv/gists{/gist_id}","starred_url":"https://api.github.com/users/jcouv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jcouv/subscriptions","organizations_url":"https://api.github.com/users/jcouv/orgs","repos_url":"https://api.github.com/users/jcouv/repos","events_url":"https://api.github.com/users/jcouv/events{/privacy}","received_events_url":"https://api.github.com/users/jcouv/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":166673288,"node_id":"MDU6TGFiZWwxNjY2NzMyODg=","url":"https://api.github.com/repos/dotnet/roslyn/labels/Area-Compilers","name":"Area-Compilers","color":"5319e7","default":false},{"id":1000133691,"node_id":"MDU6TGFiZWwxMDAwMTMzNjkx","url":"https://api.github.com/repos/dotnet/roslyn/labels/New%20Language%20Feature%20-%20enhanced%20using","name":"New Language Feature - enhanced using","color":"bfd4f2","default":false},{"id":278927730,"node_id":"MDU6TGFiZWwyNzg5Mjc3MzA=","url":"https://api.github.com/repos/dotnet/roslyn/labels/PR%20For%20Personal%20Review%20Only","name":"PR For Personal Review Only","color":"000000","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/dotnet/roslyn/pulls/31201/commits","review_comments_url":"https://api.github.com/repos/dotnet/roslyn/pulls/31201/comments","review_comment_url":"https://api.github.com/repos/dotnet/roslyn/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dotnet/roslyn/issues/31201/comments","statuses_url":"https://api.github.com/repos/dotnet/roslyn/statuses/244b07d96c2760d627907716eeda38ea679256ce","head":{"label":"chsienki:enhanced_using_cleanup","ref":"enhanced_using_cleanup","sha":"244b07d96c2760d627907716eeda38ea679256ce","user":{"login":"chsienki","id":16246502,"node_id":"MDQ6VXNlcjE2MjQ2NTAy","avatar_url":"https://avatars1.githubusercontent.com/u/16246502?v=4","gravatar_id":"","url":"https://api.github.com/users/chsienki","html_url":"https://github.com/chsienki","followers_url":"https://api.github.com/users/chsienki/followers","following_url":"https://api.github.com/users/chsienki/following{/other_user}","gists_url":"https://api.github.com/users/chsienki/gists{/gist_id}","starred_url":"https://api.github.com/users/chsienki/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chsienki/subscriptions","organizations_url":"https://api.github.com/users/chsienki/orgs","repos_url":"https://api.github.com/users/chsienki/repos","events_url":"https://api.github.com/users/chsienki/events{/privacy}","received_events_url":"https://api.github.com/users/chsienki/received_events","type":"User","site_admin":false},"repo":{"id":50145187,"node_id":"MDEwOlJlcG9zaXRvcnk1MDE0NTE4Nw==","name":"roslyn","full_name":"chsienki/roslyn","private":false,"owner":{"login":"chsienki","id":16246502,"node_id":"MDQ6VXNlcjE2MjQ2NTAy","avatar_url":"https://avatars1.githubusercontent.com/u/16246502?v=4","gravatar_id":"","url":"https://api.github.com/users/chsienki","html_url":"https://github.com/chsienki","followers_url":"https://api.github.com/users/chsienki/followers","following_url":"https://api.github.com/users/chsienki/following{/other_user}","gists_url":"https://api.github.com/users/chsienki/gists{/gist_id}","starred_url":"https://api.github.com/users/chsienki/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chsienki/subscriptions","organizations_url":"https://api.github.com/users/chsienki/orgs","repos_url":"https://api.github.com/users/chsienki/repos","events_url":"https://api.github.com/users/chsienki/events{/privacy}","received_events_url":"https://api.github.com/users/chsienki/received_events","type":"User","site_admin":false},"html_url":"https://github.com/chsienki/roslyn","description":"The .NET Compiler Platform (\"Roslyn\") provides open-source C# and Visual Basic compilers with rich code analysis APIs.","fork":true,"url":"https://api.github.com/repos/chsienki/roslyn","forks_url":"https://api.github.com/repos/chsienki/roslyn/forks","keys_url":"https://api.github.com/repos/chsienki/roslyn/keys{/key_id}","collaborators_url":"https://api.github.com/repos/chsienki/roslyn/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/chsienki/roslyn/teams","hooks_url":"https://api.github.com/repos/chsienki/roslyn/hooks","issue_events_url":"https://api.github.com/repos/chsienki/roslyn/issues/events{/number}","events_url":"https://api.github.com/repos/chsienki/roslyn/events","assignees_url":"https://api.github.com/repos/chsienki/roslyn/assignees{/user}","branches_url":"https://api.github.com/repos/chsienki/roslyn/branches{/branch}","tags_url":"https://api.github.com/repos/chsienki/roslyn/tags","blobs_url":"https://api.github.com/repos/chsienki/roslyn/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/chsienki/roslyn/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/chsienki/roslyn/git/refs{/sha}","trees_url":"https://api.github.com/repos/chsienki/roslyn/git/trees{/sha}","statuses_url":"https://api.github.com/repos/chsienki/roslyn/statuses/{sha}","languages_url":"https://api.github.com/repos/chsienki/roslyn/languages","stargazers_url":"https://api.github.com/repos/chsienki/roslyn/stargazers","contributors_url":"https://api.github.com/repos/chsienki/roslyn/contributors","subscribers_url":"https://api.github.com/repos/chsienki/roslyn/subscribers","subscription_url":"https://api.github.com/repos/chsienki/roslyn/subscription","commits_url":"https://api.github.com/repos/chsienki/roslyn/commits{/sha}","git_commits_url":"https://api.github.com/repos/chsienki/roslyn/git/commits{/sha}","comments_url":"https://api.github.com/repos/chsienki/roslyn/comments{/number}","issue_comment_url":"https://api.github.com/repos/chsienki/roslyn/issues/comments{/number}","contents_url":"https://api.github.com/repos/chsienki/roslyn/contents/{+path}","compare_url":"https://api.github.com/repos/chsienki/roslyn/compare/{base}...{head}","merges_url":"https://api.github.com/repos/chsienki/roslyn/merges","archive_url":"https://api.github.com/repos/chsienki/roslyn/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/chsienki/roslyn/downloads","issues_url":"https://api.github.com/repos/chsienki/roslyn/issues{/number}","pulls_url":"https://api.github.com/repos/chsienki/roslyn/pulls{/number}","milestones_url":"https://api.github.com/repos/chsienki/roslyn/milestones{/number}","notifications_url":"https://api.github.com/repos/chsienki/roslyn/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/chsienki/roslyn/labels{/name}","releases_url":"https://api.github.com/repos/chsienki/roslyn/releases{/id}","deployments_url":"https://api.github.com/repos/chsienki/roslyn/deployments","created_at":"2016-01-21T23:58:11Z","updated_at":"2018-10-29T22:23:52Z","pushed_at":"2018-11-16T19:06:44Z","git_url":"git://github.com/chsienki/roslyn.git","ssh_url":"git@github.com:chsienki/roslyn.git","clone_url":"https://github.com/chsienki/roslyn.git","svn_url":"https://github.com/chsienki/roslyn","homepage":"","size":441050,"stargazers_count":0,"watchers_count":0,"language":"C#","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"dotnet:features/enhanced-using","ref":"features/enhanced-using","sha":"75e513b42e2841bafbeb7b2ad674c7a4c42af213","user":{"login":"dotnet","id":9141961,"node_id":"MDEyOk9yZ2FuaXphdGlvbjkxNDE5NjE=","avatar_url":"https://avatars0.githubusercontent.com/u/9141961?v=4","gravatar_id":"","url":"https://api.github.com/users/dotnet","html_url":"https://github.com/dotnet","followers_url":"https://api.github.com/users/dotnet/followers","following_url":"https://api.github.com/users/dotnet/following{/other_user}","gists_url":"https://api.github.com/users/dotnet/gists{/gist_id}","starred_url":"https://api.github.com/users/dotnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dotnet/subscriptions","organizations_url":"https://api.github.com/users/dotnet/orgs","repos_url":"https://api.github.com/users/dotnet/repos","events_url":"https://api.github.com/users/dotnet/events{/privacy}","received_events_url":"https://api.github.com/users/dotnet/received_events","type":"Organization","site_admin":false},"repo":{"id":29078997,"node_id":"MDEwOlJlcG9zaXRvcnkyOTA3ODk5Nw==","name":"roslyn","full_name":"dotnet/roslyn","private":false,"owner":{"login":"dotnet","id":9141961,"node_id":"MDEyOk9yZ2FuaXphdGlvbjkxNDE5NjE=","avatar_url":"https://avatars0.githubusercontent.com/u/9141961?v=4","gravatar_id":"","url":"https://api.github.com/users/dotnet","html_url":"https://github.com/dotnet","followers_url":"https://api.github.com/users/dotnet/followers","following_url":"https://api.github.com/users/dotnet/following{/other_user}","gists_url":"https://api.github.com/users/dotnet/gists{/gist_id}","starred_url":"https://api.github.com/users/dotnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dotnet/subscriptions","organizations_url":"https://api.github.com/users/dotnet/orgs","repos_url":"https://api.github.com/users/dotnet/repos","events_url":"https://api.github.com/users/dotnet/events{/privacy}","received_events_url":"https://api.github.com/users/dotnet/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/dotnet/roslyn","description":"The Roslyn .NET compiler provides C# and Visual Basic languages with rich code analysis APIs.","fork":false,"url":"https://api.github.com/repos/dotnet/roslyn","forks_url":"https://api.github.com/repos/dotnet/roslyn/forks","keys_url":"https://api.github.com/repos/dotnet/roslyn/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dotnet/roslyn/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dotnet/roslyn/teams","hooks_url":"https://api.github.com/repos/dotnet/roslyn/hooks","issue_events_url":"https://api.github.com/repos/dotnet/roslyn/issues/events{/number}","events_url":"https://api.github.com/repos/dotnet/roslyn/events","assignees_url":"https://api.github.com/repos/dotnet/roslyn/assignees{/user}","branches_url":"https://api.github.com/repos/dotnet/roslyn/branches{/branch}","tags_url":"https://api.github.com/repos/dotnet/roslyn/tags","blobs_url":"https://api.github.com/repos/dotnet/roslyn/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dotnet/roslyn/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dotnet/roslyn/git/refs{/sha}","trees_url":"https://api.github.com/repos/dotnet/roslyn/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dotnet/roslyn/statuses/{sha}","languages_url":"https://api.github.com/repos/dotnet/roslyn/languages","stargazers_url":"https://api.github.com/repos/dotnet/roslyn/stargazers","contributors_url":"https://api.github.com/repos/dotnet/roslyn/contributors","subscribers_url":"https://api.github.com/repos/dotnet/roslyn/subscribers","subscription_url":"https://api.github.com/repos/dotnet/roslyn/subscription","commits_url":"https://api.github.com/repos/dotnet/roslyn/commits{/sha}","git_commits_url":"https://api.github.com/repos/dotnet/roslyn/git/commits{/sha}","comments_url":"https://api.github.com/repos/dotnet/roslyn/comments{/number}","issue_comment_url":"https://api.github.com/repos/dotnet/roslyn/issues/comments{/number}","contents_url":"https://api.github.com/repos/dotnet/roslyn/contents/{+path}","compare_url":"https://api.github.com/repos/dotnet/roslyn/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dotnet/roslyn/merges","archive_url":"https://api.github.com/repos/dotnet/roslyn/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dotnet/roslyn/downloads","issues_url":"https://api.github.com/repos/dotnet/roslyn/issues{/number}","pulls_url":"https://api.github.com/repos/dotnet/roslyn/pulls{/number}","milestones_url":"https://api.github.com/repos/dotnet/roslyn/milestones{/number}","notifications_url":"https://api.github.com/repos/dotnet/roslyn/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dotnet/roslyn/labels{/name}","releases_url":"https://api.github.com/repos/dotnet/roslyn/releases{/id}","deployments_url":"https://api.github.com/repos/dotnet/roslyn/deployments","created_at":"2015-01-11T02:39:03Z","updated_at":"2018-11-16T19:05:56Z","pushed_at":"2018-11-16T19:06:46Z","git_url":"git://github.com/dotnet/roslyn.git","ssh_url":"git@github.com:dotnet/roslyn.git","clone_url":"https://github.com/dotnet/roslyn.git","svn_url":"https://github.com/dotnet/roslyn","homepage":"https://docs.microsoft.com/dotnet/csharp/roslyn-sdk/","size":488099,"stargazers_count":10363,"watchers_count":10363,"language":"C#","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2453,"mirror_url":null,"archived":false,"open_issues_count":5388,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":2453,"open_issues":5388,"watchers":10363,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dotnet/roslyn/pulls/31201"},"html":{"href":"https://github.com/dotnet/roslyn/pull/31201"},"issue":{"href":"https://api.github.com/repos/dotnet/roslyn/issues/31201"},"comments":{"href":"https://api.github.com/repos/dotnet/roslyn/issues/31201/comments"},"review_comments":{"href":"https://api.github.com/repos/dotnet/roslyn/pulls/31201/comments"},"review_comment":{"href":"https://api.github.com/repos/dotnet/roslyn/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dotnet/roslyn/pulls/31201/commits"},"statuses":{"href":"https://api.github.com/repos/dotnet/roslyn/statuses/244b07d96c2760d627907716eeda38ea679256ce"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"jcouv"}}