{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/roslyn/issues/995","labels_url":"https://api.github.com/repos/dotnet/roslyn/issues/995/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/roslyn/issues/995/comments","events_url":"https://api.github.com/repos/dotnet/roslyn/issues/995/events","html_url":"https://github.com/dotnet/roslyn/issues/995","id":59710723,"number":995,"title":"Spurious rename conflict","user":{"login":"amcasey","id":10508071,"avatar_url":"https://avatars.githubusercontent.com/u/10508071?v=3","gravatar_id":"","url":"https://api.github.com/users/amcasey","html_url":"https://github.com/amcasey","followers_url":"https://api.github.com/users/amcasey/followers","following_url":"https://api.github.com/users/amcasey/following{/other_user}","gists_url":"https://api.github.com/users/amcasey/gists{/gist_id}","starred_url":"https://api.github.com/users/amcasey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/amcasey/subscriptions","organizations_url":"https://api.github.com/users/amcasey/orgs","repos_url":"https://api.github.com/users/amcasey/repos","events_url":"https://api.github.com/users/amcasey/events{/privacy}","received_events_url":"https://api.github.com/users/amcasey/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/dotnet/roslyn/labels/Area-IDE","name":"Area-IDE","color":"5319e7"},{"url":"https://api.github.com/repos/dotnet/roslyn/labels/Bug","name":"Bug","color":"fc2929"}],"state":"open","locked":false,"assignee":{"login":"dpoeschl","id":235241,"avatar_url":"https://avatars.githubusercontent.com/u/235241?v=3","gravatar_id":"","url":"https://api.github.com/users/dpoeschl","html_url":"https://github.com/dpoeschl","followers_url":"https://api.github.com/users/dpoeschl/followers","following_url":"https://api.github.com/users/dpoeschl/following{/other_user}","gists_url":"https://api.github.com/users/dpoeschl/gists{/gist_id}","starred_url":"https://api.github.com/users/dpoeschl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dpoeschl/subscriptions","organizations_url":"https://api.github.com/users/dpoeschl/orgs","repos_url":"https://api.github.com/users/dpoeschl/repos","events_url":"https://api.github.com/users/dpoeschl/events{/privacy}","received_events_url":"https://api.github.com/users/dpoeschl/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/dotnet/roslyn/milestones/1","html_url":"https://github.com/dotnet/roslyn/milestones/1.0%20(stable)","labels_url":"https://api.github.com/repos/dotnet/roslyn/milestones/1/labels","id":937397,"number":1,"title":"1.0 (stable)","description":"This is our 1.0 Milestone. ","creator":{"login":"jaredpar","id":146967,"avatar_url":"https://avatars.githubusercontent.com/u/146967?v=3","gravatar_id":"","url":"https://api.github.com/users/jaredpar","html_url":"https://github.com/jaredpar","followers_url":"https://api.github.com/users/jaredpar/followers","following_url":"https://api.github.com/users/jaredpar/following{/other_user}","gists_url":"https://api.github.com/users/jaredpar/gists{/gist_id}","starred_url":"https://api.github.com/users/jaredpar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jaredpar/subscriptions","organizations_url":"https://api.github.com/users/jaredpar/orgs","repos_url":"https://api.github.com/users/jaredpar/repos","events_url":"https://api.github.com/users/jaredpar/events{/privacy}","received_events_url":"https://api.github.com/users/jaredpar/received_events","type":"User","site_admin":false},"open_issues":96,"closed_issues":25,"state":"open","created_at":"2015-01-15T20:45:24Z","updated_at":"2015-03-04T15:47:40Z","due_on":null,"closed_at":null},"comments":3,"created_at":"2015-03-03T21:43:54Z","updated_at":"2015-03-04T17:42:43Z","closed_at":null,"body":"Invoke Rename (don't actually need to change name) on the first \"nextAction\" reference (not definition).  Three unresolvable conflicts are reported, some in other methods.\r\n\r\n```c#\r\nusing System;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading.Tasks;\r\n\r\nnamespace ConsoleApplication84\r\n{\r\n    class Program\r\n    {\r\n        static void Main(string[] args)\r\n        {\r\n        }\r\n\r\n        internal delegate void SuccessCompletionRoutine(DkmEvaluationResult result);\r\n        internal delegate void ExceptionCompletionRoutine(Exception exception);\r\n\r\n        private void StoreResultAndContinue(DkmEvaluationResult result, ArrayBuilder<EvalResultDataItem> rows, DkmEvaluationResult[] results, int index, int numRows, WorkList workList, DkmInspectionContext inspectionContext, DkmStackWalkFrame stackFrame, Action nextAction)\r\n        {\r\n            results[index] = result;\r\n            index++;\r\n            if (index < numRows)\r\n            {\r\n                workList.ContinueWith(() => GetEvaluationResultsAndContinue(rows, results, index, numRows, workList, inspectionContext, stackFrame, nextAction)); // Invoke Rename on \"nextAction\"\r\n            }\r\n            else\r\n            {\r\n                nextAction();\r\n            }\r\n        }\r\n\r\n        private void GetEvaluationResultsAndContinue(ArrayBuilder<EvalResultDataItem> rows, DkmEvaluationResult[] results, int index, int numRows, WorkList workList, DkmInspectionContext inspectionContext, DkmStackWalkFrame stackFrame, Action nextAction)\r\n        {\r\n            if (index >= numRows)\r\n            {\r\n                nextAction();\r\n            }\r\n            else\r\n            {\r\n                CreateEvaluationResultAndContinue(rows[index], workList, inspectionContext, stackFrame,\r\n                    result => ContinueWithExceptionHandling(\r\n                        () => StoreResultAndContinue(result, rows, results, index, numRows, workList, inspectionContext, stackFrame, nextAction),\r\n                        e =>\r\n                        {\r\n                            // If we fail to store a result, just stop enumerating rows (rather than attempting to store\r\n                            // an error message in the current row, etc).  This is because it may have been the act of\r\n                            // indexing into the results store that threw (so it would just throw again here).  The user\r\n                            // experience is less than ideal (there's no real indication that something went wrong),\r\n                            // however, it seems like it's better to enumerate/display some rows than none.  We will\r\n                            // receive a non-fatal Watson report in this case, so the problem won't go unnoticed.\r\n                            nextAction();\r\n                        }));\r\n            }\r\n        }\r\n\r\n        private static void ContinueWithExceptionHandling(Action action, ExceptionCompletionRoutine exceptionCompletionRoutine)\r\n        {\r\n            try\r\n            {\r\n                action();\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                exceptionCompletionRoutine(e);\r\n            }\r\n        }\r\n\r\n        private void CreateEvaluationResultAndContinue(EvalResultDataItem dataItem, WorkList workList, DkmInspectionContext inspectionContext, DkmStackWalkFrame stackFrame, SuccessCompletionRoutine successCompletionRoutine)\r\n        {\r\n        }\r\n\r\n        private class ArrayBuilder<T>\r\n        {\r\n            public EvalResultDataItem this[int x]\r\n            {\r\n                get\r\n                {\r\n                    return null;\r\n                }\r\n            }\r\n        }\r\n\r\n        private class EvalResultDataItem\r\n        {\r\n        }\r\n\r\n        private class WorkList\r\n        {\r\n            internal void ContinueWith(Action a)\r\n            {\r\n                throw new NotImplementedException();\r\n            }\r\n        }\r\n\r\n        private class DkmInspectionContext\r\n        {\r\n        }\r\n\r\n        private class DkmStackWalkFrame\r\n        {\r\n        }\r\n    }\r\n\r\n    internal class DkmEvaluationResult\r\n    {\r\n    }\r\n}\r\n\r\n```\r\n"},"comment":{"url":"https://api.github.com/repos/dotnet/roslyn/issues/comments/77206835","html_url":"https://github.com/dotnet/roslyn/issues/995#issuecomment-77206835","issue_url":"https://api.github.com/repos/dotnet/roslyn/issues/995","id":77206835,"user":{"login":"amcasey","id":10508071,"avatar_url":"https://avatars.githubusercontent.com/u/10508071?v=3","gravatar_id":"","url":"https://api.github.com/users/amcasey","html_url":"https://github.com/amcasey","followers_url":"https://api.github.com/users/amcasey/followers","following_url":"https://api.github.com/users/amcasey/following{/other_user}","gists_url":"https://api.github.com/users/amcasey/gists{/gist_id}","starred_url":"https://api.github.com/users/amcasey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/amcasey/subscriptions","organizations_url":"https://api.github.com/users/amcasey/orgs","repos_url":"https://api.github.com/users/amcasey/repos","events_url":"https://api.github.com/users/amcasey/events{/privacy}","received_events_url":"https://api.github.com/users/amcasey/received_events","type":"User","site_admin":false},"created_at":"2015-03-04T17:42:43Z","updated_at":"2015-03-04T17:42:43Z","body":"@Pilchie Possibly.  It definitely seems important that the parameter is captured by a lambda.  I'd also like to note that my repro is reduced from real Roslyn code."}}