diff --git a/src/AddIns/Misc/SharpRefactoring/Project/Src/MenuItemFactories/ResolveExtensionMethod.cs b/src/AddIns/Misc/SharpRefactoring/Project/Src/MenuItemFactories/ResolveExtensionMethod.cs index 62a58ffa11..0b8508fa66 100644 --- a/src/AddIns/Misc/SharpRefactoring/Project/Src/MenuItemFactories/ResolveExtensionMethod.cs +++ b/src/AddIns/Misc/SharpRefactoring/Project/Src/MenuItemFactories/ResolveExtensionMethod.cs @@ -33,9 +33,6 @@ namespace SharpRefactoring UnknownMethodResolveResult rr = context.ResolveResult as UnknownMethodResolveResult; - if (rr.CallingClass == null) - return null; - MenuItem item = new MenuItem() { Header = string.Format(StringParser.Parse("${res:AddIns.SharpRefactoring.ResolveExtensionMethod}"), rr.CallName), Icon = ClassBrowserIconService.GotoArrow.CreateImage() @@ -58,7 +55,7 @@ namespace SharpRefactoring subItem.Icon = ClassBrowserIconService.Namespace.CreateImage(); item.Items.Add(subItem); subItem.Click += delegate { - NamespaceRefactoringService.AddUsingDeclaration(rr.CallingClass.CompilationUnit, context.Editor.Document, newNamespace, true); + NamespaceRefactoringService.AddUsingDeclaration(context.CompilationUnit, context.Editor.Document, newNamespace, true); ParserService.BeginParse(context.Editor.FileName, context.Editor.Document); }; } diff --git a/src/Main/Base/Project/Src/Services/RefactoringService/RefactoringMenuBuilder.cs b/src/Main/Base/Project/Src/Services/RefactoringService/RefactoringMenuBuilder.cs index 1ad5fb223b..d987afaeb3 100644 --- a/src/Main/Base/Project/Src/Services/RefactoringService/RefactoringMenuBuilder.cs +++ b/src/Main/Base/Project/Src/Services/RefactoringService/RefactoringMenuBuilder.cs @@ -38,15 +38,20 @@ namespace ICSharpCode.SharpDevelop.Refactoring public readonly ExpressionResult ExpressionResult; public readonly ResolveResult ResolveResult; public readonly bool IsDefinition; + /// Can be null. public readonly IProjectContent ProjectContent; + public readonly ICompilationUnit CompilationUnit; - public RefactoringMenuContext(ITextEditor editor, ExpressionResult expressionResult, ResolveResult resolveResult, bool isDefinition, IProjectContent projectContent) + public RefactoringMenuContext(ITextEditor editor, ExpressionResult expressionResult, + ResolveResult resolveResult, bool isDefinition, + IProjectContent projectContent, ICompilationUnit compilationUnit) { this.Editor = editor; this.ExpressionResult = expressionResult; this.ResolveResult = resolveResult; this.IsDefinition = isDefinition; this.ProjectContent = projectContent; + this.CompilationUnit = compilationUnit; } } @@ -116,7 +121,7 @@ namespace ICSharpCode.SharpDevelop.Refactoring IProjectContent pc = null; if (pi != null) pc = pi.CompilationUnit.ProjectContent; - RefactoringMenuContext context = new RefactoringMenuContext(textEditor, expressionResult, rr, isDefinition, pc); + RefactoringMenuContext context = new RefactoringMenuContext(textEditor, expressionResult, rr, isDefinition, pc, pi.CompilationUnit); item = MakeItem((LocalResolveResult)rr, context); insertIndex = 0; // Insert local variable menu item at the topmost position. }