{"action":"created","comment":{"url":"https://api.github.com/repos/dotnet/corefxlab/pulls/comments/231591918","pull_request_review_id":172577285,"id":231591918,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIzMTU5MTkxOA==","diff_hunk":"@@ -0,0 +1,382 @@\n+﻿// Licensed to the .NET Foundation under one or more agreements.\n+// The .NET Foundation licenses this file to you under the MIT license.\n+// See the LICENSE file in the project root for more information.\n+\n+using System;\n+using System.Collections;\n+using System.Collections.Generic;\n+using System.Diagnostics;\n+using System.Runtime.CompilerServices;\n+\n+namespace Microsoft.Experimental.Collections\n+{\n+    /// <summary>\n+    /// DictionarySlim<TKey, TValue> is similar to Dictionary<TKey, TValue> but optimized in three ways:\n+    /// 1) It allows access to the value by ref.\n+    /// 2) It does not store the hash code (assumes it is cheap to equate values).\n+    /// 3) It does not accept an equality comparer(assumes Object.GetHashCode() and Object.Equals() or overridden implementation are cheap and sufficient).\n+    /// </summary>\n+    [DebuggerTypeProxy(typeof(Extensions.DictionarySlimDebugView<,>))]\n+    [DebuggerDisplay(\"Count = {Count}\")]\n+    public class DictionarySlim<TKey, TValue> : IReadOnlyCollection<KeyValuePair<TKey, TValue>> where TKey : IEquatable<TKey>\n+    {\n+        const int DefaultPrimeSize = 3;\n+        // 1-based index into _entries; 0 means empty\n+        private int[] _buckets;\n+        private Entry[] _entries;\n+        // 0-based index into _entries of head of free chain: -1 means empty\n+        private int _freeList = -1;\n+\n+        private struct Entry\n+        {\n+            public TKey key;\n+            public TValue value;\n+            // 0-based index of next entry in chain: -1 means empty\n+            public int next;\n+        }\n+\n+        public DictionarySlim()\n+        {\n+            _buckets = new int[DefaultPrimeSize];\n+            _entries = new Entry[DefaultPrimeSize];\n+        }\n+\n+        public DictionarySlim(int capacity)\n+        {\n+            capacity = HashHelpers.GetPrime(capacity);\n+            _buckets = new int[capacity];\n+            _entries = new Entry[capacity];\n+        }\n+\n+        // Drop sign bit to ensure non negative index\n+        [MethodImpl(MethodImplOptions.AggressiveInlining)]\n+        private uint GetHashCode(TKey key) => (uint)key.GetHashCode();//key.GetHashCode() & 0x7FFFFFFF;\n+\n+        [MethodImpl(MethodImplOptions.AggressiveInlining)]\n+        private int GetEntryIndex(int bucketIndex) => _buckets[bucketIndex] - 1;\n+\n+        public int Count { get; private set; }\n+\n+        public int Capacity { get => _entries.Length; }\n+\n+        public bool ContainsKey(TKey key)\n+        {\n+            Entry[] entries = _entries;\n+            int entryIndex = GetEntryIndex((int)(GetHashCode(key) % (uint)entries.Length));\n+\n+            while (entryIndex != -1)\n+            {\n+                if (entries[entryIndex].key.Equals(key))\n+                {\n+                    return true;\n+                }\n+                entryIndex = entries[entryIndex].next;\n+            }\n+\n+            return false;\n+        }\n+\n+        public TValue GetValueOrDefault(TKey key)\n+        {\n+            Entry[] entries = _entries;\n+            int entryIndex = GetEntryIndex((int)(GetHashCode(key) % (uint)entries.Length));\n+\n+            while (entryIndex != -1)\n+            {\n+                if (entries[entryIndex].key.Equals(key))\n+                {\n+                    return entries[entryIndex].value;\n+                }\n+                entryIndex = entries[entryIndex].next;\n+            }\n+\n+            return default;\n+        }\n+\n+        public bool Remove(TKey key)\n+        {\n+            Entry[] entries = _entries;\n+            int bucketIndex = (int)(GetHashCode(key) % (uint)entries.Length);\n+            int entryIndex = GetEntryIndex(bucketIndex);\n+            \n+            int lastIndex = -1;\n+            while (entryIndex != -1)\n+            {\n+                if (entries[entryIndex].key.Equals(key))\n+                {\n+                    if (lastIndex != -1)\n+                    {   // Fixup preceding element in chain to point to next (if any)\n+                        entries[lastIndex].next = entries[entryIndex].next;\n+                    }\n+                    else\n+                    {   // Fixup bucket to new head (if any)\n+                        _buckets[bucketIndex] = entries[entryIndex].next + 1;\n+                    }\n+\n+                    entries[entryIndex] = default; // could use RuntimeHelpers.IsReferenceOrContainsReferences\n+\n+                    entries[entryIndex].next = _freeList; // New head of free list\n+                    _freeList = entryIndex;\n+\n+                    Count--;\n+                    return true;\n+                }\n+                lastIndex = entryIndex;\n+                entryIndex = entries[entryIndex].next;\n+            }\n+\n+            return false;\n+        }\n+\n+        public ref TValue this[TKey key]\n+        {\n+            get\n+            {\n+                Entry[] entries = _entries;\n+                int bucketIndex = (int)(GetHashCode(key) % (uint)entries.Length);\n+                int entryIndex = GetEntryIndex(bucketIndex);\n+\n+                for(int i = entryIndex; i != -1; i = entries[i].next)\n+                {\n+                    if (entries[i].key.Equals(key))\n+                    {\n+                        return ref entries[i].value;\n+                    }\n+                }\n+\n+                if (_freeList != -1)\n+                {\n+                    entryIndex = _freeList;\n+                    _freeList = entries[_freeList].next;\n+                }\n+                else\n+                {\n+                    if (Count == entries.Length)\n+                    {\n+                        entries = Resize();\n+                        bucketIndex = (int)(GetHashCode(key) % (uint)entries.Length);\n+                        // entry indexes were not changed by Resize\n+                    }\n+                    entryIndex = Count;\n+                }\n+\n+                entries[entryIndex].key = key;\n+                entries[entryIndex].next = _buckets[bucketIndex] - 1;\n+                _buckets[bucketIndex] = entryIndex + 1;\n+                Count++;\n+                return ref entries[entryIndex].value;\n+            }\n+        }\n+\n+        private Entry[] Resize()\n+        {\n+            int count = Count;\n+            int newSize = HashHelpers.ExpandPrime(count);\n+            var entries = new Entry[newSize];\n+            Array.Copy(_entries, 0, entries, 0, count);\n+            _entries = entries;\n+\n+            var newBuckets = new int[newSize];\n+            while (count-- > 0)\n+            {\n+                int bucketIndex = (int)(GetHashCode(entries[count].key) % (uint)newBuckets.Length);\n+                entries[count].next = newBuckets[bucketIndex] - 1;\n+                newBuckets[bucketIndex] = count + 1;\n+            }\n+            _buckets = newBuckets;\n+\n+            return entries;\n+        }\n+\n+        public IEnumerable<TKey> Keys\n+        {\n+            get\n+            {\n+                Entry[] entries = _entries;\n+                for (int i = 0; i < Count; i++)\n+                {\n+                    yield return entries[i].key;\n+                }\n+            }\n+        }\n+\n+        public IEnumerable<TValue> Values\n+        {\n+            get\n+            {\n+                Entry[] entries = _entries;\n+                for (int i = 0; i < Count; i++)\n+                {\n+                    yield return entries[i].value;\n+                }\n+            }\n+        }\n+\n+        IEnumerator<KeyValuePair<TKey, TValue>> IEnumerable<KeyValuePair<TKey, TValue>>.GetEnumerator() => new Enumerator(this);\n+        IEnumerator IEnumerable.GetEnumerator() => new Enumerator(this);\n+\n+        public struct Enumerator : IEnumerator<KeyValuePair<TKey, TValue>>\n+        {\n+            private readonly DictionarySlim<TKey, TValue> _dictionary;\n+            private int _index;\n+            private int _found;\n+\n+            private readonly HashSet<int> _freeEntries;","path":"src/Microsoft.Experimental.Collections/Microsoft/Collections/Extensions/DictionarySlim.cs","position":224,"original_position":224,"commit_id":"984226b02a6068cdfca6dee51e2693746bcc78ca","original_commit_id":"984226b02a6068cdfca6dee51e2693746bcc78ca","user":{"login":"TylerBrinkley","id":10929167,"node_id":"MDQ6VXNlcjEwOTI5MTY3","avatar_url":"https://avatars1.githubusercontent.com/u/10929167?v=4","gravatar_id":"","url":"https://api.github.com/users/TylerBrinkley","html_url":"https://github.com/TylerBrinkley","followers_url":"https://api.github.com/users/TylerBrinkley/followers","following_url":"https://api.github.com/users/TylerBrinkley/following{/other_user}","gists_url":"https://api.github.com/users/TylerBrinkley/gists{/gist_id}","starred_url":"https://api.github.com/users/TylerBrinkley/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TylerBrinkley/subscriptions","organizations_url":"https://api.github.com/users/TylerBrinkley/orgs","repos_url":"https://api.github.com/users/TylerBrinkley/repos","events_url":"https://api.github.com/users/TylerBrinkley/events{/privacy}","received_events_url":"https://api.github.com/users/TylerBrinkley/received_events","type":"User","site_admin":false},"body":"This seems extremely expensive for enumeration. Could you instead use `~index` in the `Entry.next` field for your free list making everything less than 0 in the free list.","created_at":"2018-11-07T17:01:12Z","updated_at":"2018-11-07T17:05:39Z","html_url":"https://github.com/dotnet/corefxlab/pull/2458#discussion_r231591918","pull_request_url":"https://api.github.com/repos/dotnet/corefxlab/pulls/2458","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/dotnet/corefxlab/pulls/comments/231591918"},"html":{"href":"https://github.com/dotnet/corefxlab/pull/2458#discussion_r231591918"},"pull_request":{"href":"https://api.github.com/repos/dotnet/corefxlab/pulls/2458"}}},"pull_request":{"url":"https://api.github.com/repos/dotnet/corefxlab/pulls/2458","id":211577745,"node_id":"MDExOlB1bGxSZXF1ZXN0MjExNTc3NzQ1","html_url":"https://github.com/dotnet/corefxlab/pull/2458","diff_url":"https://github.com/dotnet/corefxlab/pull/2458.diff","patch_url":"https://github.com/dotnet/corefxlab/pull/2458.patch","issue_url":"https://api.github.com/repos/dotnet/corefxlab/issues/2458","number":2458,"state":"open","locked":false,"title":"DictionarySlim","user":{"login":"AnthonyLloyd","id":9265702,"node_id":"MDQ6VXNlcjkyNjU3MDI=","avatar_url":"https://avatars3.githubusercontent.com/u/9265702?v=4","gravatar_id":"","url":"https://api.github.com/users/AnthonyLloyd","html_url":"https://github.com/AnthonyLloyd","followers_url":"https://api.github.com/users/AnthonyLloyd/followers","following_url":"https://api.github.com/users/AnthonyLloyd/following{/other_user}","gists_url":"https://api.github.com/users/AnthonyLloyd/gists{/gist_id}","starred_url":"https://api.github.com/users/AnthonyLloyd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AnthonyLloyd/subscriptions","organizations_url":"https://api.github.com/users/AnthonyLloyd/orgs","repos_url":"https://api.github.com/users/AnthonyLloyd/repos","events_url":"https://api.github.com/users/AnthonyLloyd/events{/privacy}","received_events_url":"https://api.github.com/users/AnthonyLloyd/received_events","type":"User","site_admin":false},"body":"","created_at":"2018-08-28T22:32:37Z","updated_at":"2018-11-07T17:05:39Z","closed_at":null,"merged_at":null,"merge_commit_sha":"772d644a735d5bf20a98ab2084ded3d6824d47e1","assignee":{"login":"safern","id":22899328,"node_id":"MDQ6VXNlcjIyODk5MzI4","avatar_url":"https://avatars1.githubusercontent.com/u/22899328?v=4","gravatar_id":"","url":"https://api.github.com/users/safern","html_url":"https://github.com/safern","followers_url":"https://api.github.com/users/safern/followers","following_url":"https://api.github.com/users/safern/following{/other_user}","gists_url":"https://api.github.com/users/safern/gists{/gist_id}","starred_url":"https://api.github.com/users/safern/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/safern/subscriptions","organizations_url":"https://api.github.com/users/safern/orgs","repos_url":"https://api.github.com/users/safern/repos","events_url":"https://api.github.com/users/safern/events{/privacy}","received_events_url":"https://api.github.com/users/safern/received_events","type":"User","site_admin":false},"assignees":[{"login":"safern","id":22899328,"node_id":"MDQ6VXNlcjIyODk5MzI4","avatar_url":"https://avatars1.githubusercontent.com/u/22899328?v=4","gravatar_id":"","url":"https://api.github.com/users/safern","html_url":"https://github.com/safern","followers_url":"https://api.github.com/users/safern/followers","following_url":"https://api.github.com/users/safern/following{/other_user}","gists_url":"https://api.github.com/users/safern/gists{/gist_id}","starred_url":"https://api.github.com/users/safern/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/safern/subscriptions","organizations_url":"https://api.github.com/users/safern/orgs","repos_url":"https://api.github.com/users/safern/repos","events_url":"https://api.github.com/users/safern/events{/privacy}","received_events_url":"https://api.github.com/users/safern/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"stephentoub","id":2642209,"node_id":"MDQ6VXNlcjI2NDIyMDk=","avatar_url":"https://avatars0.githubusercontent.com/u/2642209?v=4","gravatar_id":"","url":"https://api.github.com/users/stephentoub","html_url":"https://github.com/stephentoub","followers_url":"https://api.github.com/users/stephentoub/followers","following_url":"https://api.github.com/users/stephentoub/following{/other_user}","gists_url":"https://api.github.com/users/stephentoub/gists{/gist_id}","starred_url":"https://api.github.com/users/stephentoub/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stephentoub/subscriptions","organizations_url":"https://api.github.com/users/stephentoub/orgs","repos_url":"https://api.github.com/users/stephentoub/repos","events_url":"https://api.github.com/users/stephentoub/events{/privacy}","received_events_url":"https://api.github.com/users/stephentoub/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":279193354,"node_id":"MDU6TGFiZWwyNzkxOTMzNTQ=","url":"https://api.github.com/repos/dotnet/corefxlab/labels/area-System.Collections","name":"area-System.Collections","color":"d4c5f9","default":false}],"milestone":{"url":"https://api.github.com/repos/dotnet/corefxlab/milestones/3","html_url":"https://github.com/dotnet/corefxlab/milestone/3","labels_url":"https://api.github.com/repos/dotnet/corefxlab/milestones/3/labels","id":2328180,"node_id":"MDk6TWlsZXN0b25lMjMyODE4MA==","number":3,"title":"Future","description":"Milestone tracking the issues triaged for an unspecified future release","creator":{"login":"joshfree","id":1302850,"node_id":"MDQ6VXNlcjEzMDI4NTA=","avatar_url":"https://avatars1.githubusercontent.com/u/1302850?v=4","gravatar_id":"","url":"https://api.github.com/users/joshfree","html_url":"https://github.com/joshfree","followers_url":"https://api.github.com/users/joshfree/followers","following_url":"https://api.github.com/users/joshfree/following{/other_user}","gists_url":"https://api.github.com/users/joshfree/gists{/gist_id}","starred_url":"https://api.github.com/users/joshfree/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshfree/subscriptions","organizations_url":"https://api.github.com/users/joshfree/orgs","repos_url":"https://api.github.com/users/joshfree/repos","events_url":"https://api.github.com/users/joshfree/events{/privacy}","received_events_url":"https://api.github.com/users/joshfree/received_events","type":"User","site_admin":false},"open_issues":138,"closed_issues":42,"state":"open","created_at":"2017-02-16T18:27:23Z","updated_at":"2018-10-10T23:06:52Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/dotnet/corefxlab/pulls/2458/commits","review_comments_url":"https://api.github.com/repos/dotnet/corefxlab/pulls/2458/comments","review_comment_url":"https://api.github.com/repos/dotnet/corefxlab/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dotnet/corefxlab/issues/2458/comments","statuses_url":"https://api.github.com/repos/dotnet/corefxlab/statuses/984226b02a6068cdfca6dee51e2693746bcc78ca","head":{"label":"AnthonyLloyd:master","ref":"master","sha":"984226b02a6068cdfca6dee51e2693746bcc78ca","user":{"login":"AnthonyLloyd","id":9265702,"node_id":"MDQ6VXNlcjkyNjU3MDI=","avatar_url":"https://avatars3.githubusercontent.com/u/9265702?v=4","gravatar_id":"","url":"https://api.github.com/users/AnthonyLloyd","html_url":"https://github.com/AnthonyLloyd","followers_url":"https://api.github.com/users/AnthonyLloyd/followers","following_url":"https://api.github.com/users/AnthonyLloyd/following{/other_user}","gists_url":"https://api.github.com/users/AnthonyLloyd/gists{/gist_id}","starred_url":"https://api.github.com/users/AnthonyLloyd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AnthonyLloyd/subscriptions","organizations_url":"https://api.github.com/users/AnthonyLloyd/orgs","repos_url":"https://api.github.com/users/AnthonyLloyd/repos","events_url":"https://api.github.com/users/AnthonyLloyd/events{/privacy}","received_events_url":"https://api.github.com/users/AnthonyLloyd/received_events","type":"User","site_admin":false},"repo":{"id":146511895,"node_id":"MDEwOlJlcG9zaXRvcnkxNDY1MTE4OTU=","name":"corefxlab","full_name":"AnthonyLloyd/corefxlab","private":false,"owner":{"login":"AnthonyLloyd","id":9265702,"node_id":"MDQ6VXNlcjkyNjU3MDI=","avatar_url":"https://avatars3.githubusercontent.com/u/9265702?v=4","gravatar_id":"","url":"https://api.github.com/users/AnthonyLloyd","html_url":"https://github.com/AnthonyLloyd","followers_url":"https://api.github.com/users/AnthonyLloyd/followers","following_url":"https://api.github.com/users/AnthonyLloyd/following{/other_user}","gists_url":"https://api.github.com/users/AnthonyLloyd/gists{/gist_id}","starred_url":"https://api.github.com/users/AnthonyLloyd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AnthonyLloyd/subscriptions","organizations_url":"https://api.github.com/users/AnthonyLloyd/orgs","repos_url":"https://api.github.com/users/AnthonyLloyd/repos","events_url":"https://api.github.com/users/AnthonyLloyd/events{/privacy}","received_events_url":"https://api.github.com/users/AnthonyLloyd/received_events","type":"User","site_admin":false},"html_url":"https://github.com/AnthonyLloyd/corefxlab","description":"This repo is for experimentation and exploring new ideas that may or may not make it into the main corefx repo.","fork":true,"url":"https://api.github.com/repos/AnthonyLloyd/corefxlab","forks_url":"https://api.github.com/repos/AnthonyLloyd/corefxlab/forks","keys_url":"https://api.github.com/repos/AnthonyLloyd/corefxlab/keys{/key_id}","collaborators_url":"https://api.github.com/repos/AnthonyLloyd/corefxlab/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/AnthonyLloyd/corefxlab/teams","hooks_url":"https://api.github.com/repos/AnthonyLloyd/corefxlab/hooks","issue_events_url":"https://api.github.com/repos/AnthonyLloyd/corefxlab/issues/events{/number}","events_url":"https://api.github.com/repos/AnthonyLloyd/corefxlab/events","assignees_url":"https://api.github.com/repos/AnthonyLloyd/corefxlab/assignees{/user}","branches_url":"https://api.github.com/repos/AnthonyLloyd/corefxlab/branches{/branch}","tags_url":"https://api.github.com/repos/AnthonyLloyd/corefxlab/tags","blobs_url":"https://api.github.com/repos/AnthonyLloyd/corefxlab/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/AnthonyLloyd/corefxlab/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/AnthonyLloyd/corefxlab/git/refs{/sha}","trees_url":"https://api.github.com/repos/AnthonyLloyd/corefxlab/git/trees{/sha}","statuses_url":"https://api.github.com/repos/AnthonyLloyd/corefxlab/statuses/{sha}","languages_url":"https://api.github.com/repos/AnthonyLloyd/corefxlab/languages","stargazers_url":"https://api.github.com/repos/AnthonyLloyd/corefxlab/stargazers","contributors_url":"https://api.github.com/repos/AnthonyLloyd/corefxlab/contributors","subscribers_url":"https://api.github.com/repos/AnthonyLloyd/corefxlab/subscribers","subscription_url":"https://api.github.com/repos/AnthonyLloyd/corefxlab/subscription","commits_url":"https://api.github.com/repos/AnthonyLloyd/corefxlab/commits{/sha}","git_commits_url":"https://api.github.com/repos/AnthonyLloyd/corefxlab/git/commits{/sha}","comments_url":"https://api.github.com/repos/AnthonyLloyd/corefxlab/comments{/number}","issue_comment_url":"https://api.github.com/repos/AnthonyLloyd/corefxlab/issues/comments{/number}","contents_url":"https://api.github.com/repos/AnthonyLloyd/corefxlab/contents/{+path}","compare_url":"https://api.github.com/repos/AnthonyLloyd/corefxlab/compare/{base}...{head}","merges_url":"https://api.github.com/repos/AnthonyLloyd/corefxlab/merges","archive_url":"https://api.github.com/repos/AnthonyLloyd/corefxlab/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/AnthonyLloyd/corefxlab/downloads","issues_url":"https://api.github.com/repos/AnthonyLloyd/corefxlab/issues{/number}","pulls_url":"https://api.github.com/repos/AnthonyLloyd/corefxlab/pulls{/number}","milestones_url":"https://api.github.com/repos/AnthonyLloyd/corefxlab/milestones{/number}","notifications_url":"https://api.github.com/repos/AnthonyLloyd/corefxlab/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/AnthonyLloyd/corefxlab/labels{/name}","releases_url":"https://api.github.com/repos/AnthonyLloyd/corefxlab/releases{/id}","deployments_url":"https://api.github.com/repos/AnthonyLloyd/corefxlab/deployments","created_at":"2018-08-28T22:05:18Z","updated_at":"2018-11-07T13:31:15Z","pushed_at":"2018-11-07T13:31:12Z","git_url":"git://github.com/AnthonyLloyd/corefxlab.git","ssh_url":"git@github.com:AnthonyLloyd/corefxlab.git","clone_url":"https://github.com/AnthonyLloyd/corefxlab.git","svn_url":"https://github.com/AnthonyLloyd/corefxlab","homepage":"","size":66146,"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":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"dotnet:master","ref":"master","sha":"63ef1a5db4fdbfcf9822b8cd2cbc3921b3d3cb9e","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":29504192,"node_id":"MDEwOlJlcG9zaXRvcnkyOTUwNDE5Mg==","name":"corefxlab","full_name":"dotnet/corefxlab","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/corefxlab","description":"This repo is for experimentation and exploring new ideas that may or may not make it into the main corefx repo.","fork":false,"url":"https://api.github.com/repos/dotnet/corefxlab","forks_url":"https://api.github.com/repos/dotnet/corefxlab/forks","keys_url":"https://api.github.com/repos/dotnet/corefxlab/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dotnet/corefxlab/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dotnet/corefxlab/teams","hooks_url":"https://api.github.com/repos/dotnet/corefxlab/hooks","issue_events_url":"https://api.github.com/repos/dotnet/corefxlab/issues/events{/number}","events_url":"https://api.github.com/repos/dotnet/corefxlab/events","assignees_url":"https://api.github.com/repos/dotnet/corefxlab/assignees{/user}","branches_url":"https://api.github.com/repos/dotnet/corefxlab/branches{/branch}","tags_url":"https://api.github.com/repos/dotnet/corefxlab/tags","blobs_url":"https://api.github.com/repos/dotnet/corefxlab/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dotnet/corefxlab/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dotnet/corefxlab/git/refs{/sha}","trees_url":"https://api.github.com/repos/dotnet/corefxlab/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dotnet/corefxlab/statuses/{sha}","languages_url":"https://api.github.com/repos/dotnet/corefxlab/languages","stargazers_url":"https://api.github.com/repos/dotnet/corefxlab/stargazers","contributors_url":"https://api.github.com/repos/dotnet/corefxlab/contributors","subscribers_url":"https://api.github.com/repos/dotnet/corefxlab/subscribers","subscription_url":"https://api.github.com/repos/dotnet/corefxlab/subscription","commits_url":"https://api.github.com/repos/dotnet/corefxlab/commits{/sha}","git_commits_url":"https://api.github.com/repos/dotnet/corefxlab/git/commits{/sha}","comments_url":"https://api.github.com/repos/dotnet/corefxlab/comments{/number}","issue_comment_url":"https://api.github.com/repos/dotnet/corefxlab/issues/comments{/number}","contents_url":"https://api.github.com/repos/dotnet/corefxlab/contents/{+path}","compare_url":"https://api.github.com/repos/dotnet/corefxlab/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dotnet/corefxlab/merges","archive_url":"https://api.github.com/repos/dotnet/corefxlab/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dotnet/corefxlab/downloads","issues_url":"https://api.github.com/repos/dotnet/corefxlab/issues{/number}","pulls_url":"https://api.github.com/repos/dotnet/corefxlab/pulls{/number}","milestones_url":"https://api.github.com/repos/dotnet/corefxlab/milestones{/number}","notifications_url":"https://api.github.com/repos/dotnet/corefxlab/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dotnet/corefxlab/labels{/name}","releases_url":"https://api.github.com/repos/dotnet/corefxlab/releases{/id}","deployments_url":"https://api.github.com/repos/dotnet/corefxlab/deployments","created_at":"2015-01-20T00:44:35Z","updated_at":"2018-11-06T07:16:19Z","pushed_at":"2018-11-07T16:05:32Z","git_url":"git://github.com/dotnet/corefxlab.git","ssh_url":"git@github.com:dotnet/corefxlab.git","clone_url":"https://github.com/dotnet/corefxlab.git","svn_url":"https://github.com/dotnet/corefxlab","homepage":"","size":58040,"stargazers_count":1201,"watchers_count":1201,"language":"C#","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":318,"mirror_url":null,"archived":false,"open_issues_count":203,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":318,"open_issues":203,"watchers":1201,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dotnet/corefxlab/pulls/2458"},"html":{"href":"https://github.com/dotnet/corefxlab/pull/2458"},"issue":{"href":"https://api.github.com/repos/dotnet/corefxlab/issues/2458"},"comments":{"href":"https://api.github.com/repos/dotnet/corefxlab/issues/2458/comments"},"review_comments":{"href":"https://api.github.com/repos/dotnet/corefxlab/pulls/2458/comments"},"review_comment":{"href":"https://api.github.com/repos/dotnet/corefxlab/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dotnet/corefxlab/pulls/2458/commits"},"statuses":{"href":"https://api.github.com/repos/dotnet/corefxlab/statuses/984226b02a6068cdfca6dee51e2693746bcc78ca"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"TylerBrinkley"}}