Skip to content
This repository was archived by the owner on Oct 16, 2020. It is now read-only.
This repository was archived by the owner on Oct 16, 2020. It is now read-only.

Crash in ConvertForeachToForAction #267

@dgrunwald

Description

@dgrunwald

Create a new C# application with the following code:

    class Program
    {
        public static void Main(string[] args)
        {
            foreach (string
            Console.WriteLine("Hello World!");
        }
    }

Place the caret after "string" in the incomplete foreach statement.

SharpDevelop Version : 5.0.0.3556-alpha-9f8414e9
.NET Version         : 4.0.30319.18408
OS Version           : Microsoft Windows NT 6.1.7601 Service Pack 1
Current culture      : English (United States) (en-US)
Running under WOW6432, processor architecture: x86-64
Working Set Memory   : 136244kb
GC Heap Memory       : 20306kb

Unhandled WPF exception
Exception thrown:
System.ArgumentNullException: Value cannot be null.
Parameter name: node
   at ICSharpCode.NRefactory.CSharp.Resolver.CSharpAstResolver.GetResolverStateBefore(AstNode node, CancellationToken cancellationToken) in c:\work\SD5\src\Libraries\NRefactory\ICSharpCode.NRefactory.CSharp\Resolver\CSharpAstResolver.cs:line 192
   at ICSharpCode.NRefactory.CSharp.Refactoring.BaseRefactoringContext.GetResolverStateBefore(AstNode node) in c:\work\SD5\src\Libraries\NRefactory\ICSharpCode.NRefactory.CSharp\Refactoring\BaseRefactoringContext.cs:line 118
   at ICSharpCode.NRefactory.CSharp.Refactoring.ConvertForeachToForAction.<GetActions>d__8.MoveNext() in c:\work\SD5\src\Libraries\NRefactory\ICSharpCode.NRefactory.CSharp.Refactoring\CodeActions\ConvertForeachToForAction.cs:line 72
   at System.Linq.Enumerable.<SelectIterator>d__7`2.MoveNext()
   at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   at CSharpBinding.Refactoring.CSharpCodeActionProviderDoozer.CSharpContextActionProviderWrapper.<>c__DisplayClass2.<<GetAvailableActionsAsync>b__1>d__4.MoveNext() in c:\work\SD5\src\AddIns\BackendBindings\CSharpBinding\Project\Src\Refactoring\CSharpCodeActionProviderDoozer.cs:line 100
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at ICSharpCode.AvalonEdit.AddIn.ContextActions.EditorActionsProvider.<GetActionsAsync>d__f.MoveNext() in c:\work\SD5\src\AddIns\DisplayBindings\AvalonEdit.AddIn\Src\ContextActions\EditorActionsProvider.cs:line 90
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at ICSharpCode.AvalonEdit.AddIn.ContextActions.ContextActionsBulbViewModel.<LoadActionsAsync>d__1.MoveNext() in c:\work\SD5\src\AddIns\DisplayBindings\AvalonEdit.AddIn\Src\ContextActions\ContextActionsBulbViewModel.cs:line 49
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at ICSharpCode.AvalonEdit.AddIn.ContextActions.ContextActionsRenderer.<TimerMoveTick>d__6.MoveNext() in c:\work\SD5\src\AddIns\DisplayBindings\AvalonEdit.AddIn\Src\ContextActions\ContextActionsRenderer.cs:line 138
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<ThrowAsync>b__0(Object state)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)

---- Recent log messages:
22:59:28.391 [1] DEBUG - Update Foldings
22:59:29.454 [1] DEBUG - Resolved (Line 18, Col 23) to 
22:59:29.454 [1] DEBUG - ParseInformationUpdated C:\Users\Daniel\Documents\SharpDevelop Projects\asga\asga\Program.cs (updated)
22:59:29.500 [1] DEBUG - Update Foldings
22:59:29.516 [1] ERROR - Unhandled WPF exception
--> Exception:
System.ArgumentNullException: Value cannot be null.
Parameter name: node
   at ICSharpCode.NRefactory.CSharp.Resolver.CSharpAstResolver.GetResolverStateBefore(AstNode node, CancellationToken cancellationToken) in c:\work\SD5\src\Libraries\NRefactory\ICSharpCode.NRefactory.CSharp\Resolver\CSharpAstResolver.cs:line 192
   at ICSharpCode.NRefactory.CSharp.Refactoring.BaseRefactoringContext.GetResolverStateBefore(AstNode node) in c:\work\SD5\src\Libraries\NRefactory\ICSharpCode.NRefactory.CSharp\Refactoring\BaseRefactoringContext.cs:line 118
   at ICSharpCode.NRefactory.CSharp.Refactoring.ConvertForeachToForAction.<GetActions>d__8.MoveNext() in c:\work\SD5\src\Libraries\NRefactory\ICSharpCode.NRefactory.CSharp.Refactoring\CodeActions\ConvertForeachToForAction.cs:line 72
   at System.Linq.Enumerable.<SelectIterator>d__7`2.MoveNext()
   at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   at CSharpBinding.Refactoring.CSharpCodeActionProviderDoozer.CSharpContextActionProviderWrapper.<>c__DisplayClass2.<<GetAvailableActionsAsync>b__1>d__4.MoveNext() in c:\work\SD5\src\AddIns\BackendBindings\CSharpBinding\Project\Src\Refactoring\CSharpCodeActionProviderDoozer.cs:line 100
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at ICSharpCode.AvalonEdit.AddIn.ContextActions.EditorActionsProvider.<GetActionsAsync>d__f.MoveNext() in c:\work\SD5\src\AddIns\DisplayBindings\AvalonEdit.AddIn\Src\ContextActions\EditorActionsProvider.cs:line 90
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at ICSharpCode.AvalonEdit.AddIn.ContextActions.ContextActionsBulbViewModel.<LoadActionsAsync>d__1.MoveNext() in c:\work\SD5\src\AddIns\DisplayBindings\AvalonEdit.AddIn\Src\ContextActions\ContextActionsBulbViewModel.cs:line 49
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at ICSharpCode.AvalonEdit.AddIn.ContextActions.ContextActionsRenderer.<TimerMoveTick>d__6.MoveNext() in c:\work\SD5\src\AddIns\DisplayBindings\AvalonEdit.AddIn\Src\ContextActions\ContextActionsRenderer.cs:line 138
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<ThrowAsync>b__0(Object state)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
22:59:30.915 [1] DEBUG - Loading context actions - requesting cancellation.
22:59:32.469 [1] DEBUG - Resolved (Line 18, Col 23) to 
22:59:32.469 [1] DEBUG - ParseInformationUpdated C:\Users\Daniel\Documents\SharpDevelop Projects\asga\asga\Program.cs (updated)
22:59:32.500 [1] DEBUG - Update Foldings
22:59:33.446 [1] DEBUG - Resolved (Line 19, Col 26) to 
22:59:33.446 [1] DEBUG - ParseInformationUpdated C:\Users\Daniel\Documents\SharpDevelop Projects\asga\asga\Program.cs (updated)
22:59:33.469 [1] DEBUG - Update Foldings
22:59:34.282 [1] ERROR - Unhandled WPF exception
--> Exception:
System.ArgumentNullException: Value cannot be null.
Parameter name: node
   at ICSharpCode.NRefactory.CSharp.Resolver.CSharpAstResolver.GetResolverStateBefore(AstNode node, CancellationToken cancellationToken) in c:\work\SD5\src\Libraries\NRefactory\ICSharpCode.NRefactory.CSharp\Resolver\CSharpAstResolver.cs:line 192
   at ICSharpCode.NRefactory.CSharp.Refactoring.BaseRefactoringContext.GetResolverStateBefore(AstNode node) in c:\work\SD5\src\Libraries\NRefactory\ICSharpCode.NRefactory.CSharp\Refactoring\BaseRefactoringContext.cs:line 118
   at ICSharpCode.NRefactory.CSharp.Refactoring.ConvertForeachToForAction.<GetActions>d__8.MoveNext() in c:\work\SD5\src\Libraries\NRefactory\ICSharpCode.NRefactory.CSharp.Refactoring\CodeActions\ConvertForeachToForAction.cs:line 72
   at System.Linq.Enumerable.<SelectIterator>d__7`2.MoveNext()
   at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   at CSharpBinding.Refactoring.CSharpCodeActionProviderDoozer.CSharpContextActionProviderWrapper.<>c__DisplayClass2.<<GetAvailableActionsAsync>b__1>d__4.MoveNext() in c:\work\SD5\src\AddIns\BackendBindings\CSharpBinding\Project\Src\Refactoring\CSharpCodeActionProviderDoozer.cs:line 100
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at ICSharpCode.AvalonEdit.AddIn.ContextActions.EditorActionsProvider.<GetActionsAsync>d__f.MoveNext() in c:\work\SD5\src\AddIns\DisplayBindings\AvalonEdit.AddIn\Src\ContextActions\EditorActionsProvider.cs:line 90
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at ICSharpCode.AvalonEdit.AddIn.ContextActions.ContextActionsBulbViewModel.<LoadActionsAsync>d__1.MoveNext() in c:\work\SD5\src\AddIns\DisplayBindings\AvalonEdit.AddIn\Src\ContextActions\ContextActionsBulbViewModel.cs:line 49
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at ICSharpCode.AvalonEdit.AddIn.ContextActions.ContextActionsRenderer.<TimerMoveTick>d__6.MoveNext() in c:\work\SD5\src\AddIns\DisplayBindings\AvalonEdit.AddIn\Src\ContextActions\ContextActionsRenderer.cs:line 138
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<ThrowAsync>b__0(Object state)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
22:59:36.532 [1] DEBUG - Resolved (Line 17, Col 37) to 
22:59:36.954 [1] DEBUG - Loading context actions - requesting cancellation.
22:59:37.579 [1] DEBUG - Service startup: ICSharpCode.SharpDevelop.Templates.ITemplateService
22:59:38.375 [1] DEBUG - ParseInformationUpdated C:\Users\Daniel\Documents\SharpDevelop Projects\asga\asga\Program.cs (updated)
22:59:38.399 [1] DEBUG - Loading context actions - requesting cancellation.
22:59:38.407 [1] DEBUG - Update Foldings
22:59:40.758 [1] DEBUG - ParseInformationUpdated C:\Users\Daniel\Documents\SharpDevelop Projects\asga\asga\Program.cs (updated)
22:59:40.782 [1] DEBUG - Update Foldings
22:59:44.571 [1] DEBUG - Resolved (Line 17, Col 19) to 
22:59:44.579 [1] ERROR - Unhandled WPF exception
--> Exception:
System.ArgumentNullException: Value cannot be null.
Parameter name: node
   at ICSharpCode.NRefactory.CSharp.Resolver.CSharpAstResolver.GetResolverStateBefore(AstNode node, CancellationToken cancellationToken) in c:\work\SD5\src\Libraries\NRefactory\ICSharpCode.NRefactory.CSharp\Resolver\CSharpAstResolver.cs:line 192
   at ICSharpCode.NRefactory.CSharp.Refactoring.BaseRefactoringContext.GetResolverStateBefore(AstNode node) in c:\work\SD5\src\Libraries\NRefactory\ICSharpCode.NRefactory.CSharp\Refactoring\BaseRefactoringContext.cs:line 118
   at ICSharpCode.NRefactory.CSharp.Refactoring.ConvertForeachToForAction.<GetActions>d__8.MoveNext() in c:\work\SD5\src\Libraries\NRefactory\ICSharpCode.NRefactory.CSharp.Refactoring\CodeActions\ConvertForeachToForAction.cs:line 72
   at System.Linq.Enumerable.<SelectIterator>d__7`2.MoveNext()
   at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   at CSharpBinding.Refactoring.CSharpCodeActionProviderDoozer.CSharpContextActionProviderWrapper.<>c__DisplayClass2.<<GetAvailableActionsAsync>b__1>d__4.MoveNext() in c:\work\SD5\src\AddIns\BackendBindings\CSharpBinding\Project\Src\Refactoring\CSharpCodeActionProviderDoozer.cs:line 100
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at ICSharpCode.AvalonEdit.AddIn.ContextActions.EditorActionsProvider.<GetActionsAsync>d__f.MoveNext() in c:\work\SD5\src\AddIns\DisplayBindings\AvalonEdit.AddIn\Src\ContextActions\EditorActionsProvider.cs:line 90
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at ICSharpCode.AvalonEdit.AddIn.ContextActions.ContextActionsBulbViewModel.<LoadActionsAsync>d__1.MoveNext() in c:\work\SD5\src\AddIns\DisplayBindings\AvalonEdit.AddIn\Src\ContextActions\ContextActionsBulbViewModel.cs:line 49
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at ICSharpCode.AvalonEdit.AddIn.ContextActions.ContextActionsRenderer.<TimerMoveTick>d__6.MoveNext() in c:\work\SD5\src\AddIns\DisplayBindings\AvalonEdit.AddIn\Src\ContextActions\ContextActionsRenderer.cs:line 138
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<ThrowAsync>b__0(Object state)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
22:59:49.875 [1] DEBUG - Loading context actions - requesting cancellation.
22:59:50.938 [1] ERROR - Unhandled WPF exception
--> Exception:
System.ArgumentNullException: Value cannot be null.
Parameter name: node
   at ICSharpCode.NRefactory.CSharp.Resolver.CSharpAstResolver.GetResolverStateBefore(AstNode node, CancellationToken cancellationToken) in c:\work\SD5\src\Libraries\NRefactory\ICSharpCode.NRefactory.CSharp\Resolver\CSharpAstResolver.cs:line 192
   at ICSharpCode.NRefactory.CSharp.Refactoring.BaseRefactoringContext.GetResolverStateBefore(AstNode node) in c:\work\SD5\src\Libraries\NRefactory\ICSharpCode.NRefactory.CSharp\Refactoring\BaseRefactoringContext.cs:line 118
   at ICSharpCode.NRefactory.CSharp.Refactoring.ConvertForeachToForAction.<GetActions>d__8.MoveNext() in c:\work\SD5\src\Libraries\NRefactory\ICSharpCode.NRefactory.CSharp.Refactoring\CodeActions\ConvertForeachToForAction.cs:line 72
   at System.Linq.Enumerable.<SelectIterator>d__7`2.MoveNext()
   at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   at CSharpBinding.Refactoring.CSharpCodeActionProviderDoozer.CSharpContextActionProviderWrapper.<>c__DisplayClass2.<<GetAvailableActionsAsync>b__1>d__4.MoveNext() in c:\work\SD5\src\AddIns\BackendBindings\CSharpBinding\Project\Src\Refactoring\CSharpCodeActionProviderDoozer.cs:line 100
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at ICSharpCode.AvalonEdit.AddIn.ContextActions.EditorActionsProvider.<GetActionsAsync>d__f.MoveNext() in c:\work\SD5\src\AddIns\DisplayBindings\AvalonEdit.AddIn\Src\ContextActions\EditorActionsProvider.cs:line 90
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at ICSharpCode.AvalonEdit.AddIn.ContextActions.ContextActionsBulbViewModel.<LoadActionsAsync>d__1.MoveNext() in c:\work\SD5\src\AddIns\DisplayBindings\AvalonEdit.AddIn\Src\ContextActions\ContextActionsBulbViewModel.cs:line 49
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at ICSharpCode.AvalonEdit.AddIn.ContextActions.ContextActionsRenderer.<TimerMoveTick>d__6.MoveNext() in c:\work\SD5\src\AddIns\DisplayBindings\AvalonEdit.AddIn\Src\ContextActions\ContextActionsRenderer.cs:line 138
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<ThrowAsync>b__0(Object state)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions