diff --git a/ICSharpCode.NRefactory.CSharp/Refactoring/CodeActions/CreatePropertyAction.cs b/ICSharpCode.NRefactory.CSharp/Refactoring/CodeActions/CreatePropertyAction.cs index 478f926d06..2356067981 100644 --- a/ICSharpCode.NRefactory.CSharp/Refactoring/CodeActions/CreatePropertyAction.cs +++ b/ICSharpCode.NRefactory.CSharp/Refactoring/CodeActions/CreatePropertyAction.cs @@ -1,4 +1,4 @@ -// +// // CreateProperty.cs // // Author: @@ -64,15 +64,14 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring createInOtherType = !state.CurrentTypeDefinition.Equals(targetResolveResult.Type.GetDefinition()); } - bool isStatic; + bool isStatic = targetResolveResult is TypeResolveResult; if (createInOtherType) { - isStatic = targetResolveResult is TypeResolveResult; if (isStatic && targetResolveResult.Type.Kind == TypeKind.Interface) yield break; } else { if (state.CurrentMember == null || state.CurrentTypeDefinition == null) yield break; - isStatic = state.CurrentMember.IsStatic || state.CurrentTypeDefinition.IsStatic; + isStatic |= state.CurrentMember.IsStatic || state.CurrentTypeDefinition.IsStatic; } // var service = (NamingConventionService)context.GetService(typeof(NamingConventionService)); diff --git a/ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/RedundantInternalIssue.cs b/ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/RedundantInternalIssue.cs index fe90501774..2f958d0b1b 100644 --- a/ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/RedundantInternalIssue.cs +++ b/ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/RedundantInternalIssue.cs @@ -1,4 +1,4 @@ -// +// // RedundantInternalInspector.cs // // Author: @@ -34,7 +34,7 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring /// /// Finds redundant internal modifiers. /// - [IssueDescription("Remove redunant 'internal' modifier", + [IssueDescription("Remove redundant 'internal' modifier", Description="Removes 'internal' modifiers that are not required.", Category = IssueCategories.Redundancies, Severity = Severity.Hint, diff --git a/ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/RedundantNamespaceUsageIssue.cs b/ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/RedundantNamespaceUsageIssue.cs index 00fc2af3d5..8cb331d394 100644 --- a/ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/RedundantNamespaceUsageIssue.cs +++ b/ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/RedundantNamespaceUsageIssue.cs @@ -1,6 +1,6 @@ -// +// // RedundantNamespaceUsageInspector.cs -// +// // Author: // Mike Krüger // @@ -37,10 +37,10 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring /// Finds redundant namespace usages. /// [IssueDescription("Remove redundant namespace usages", - Description = "Removes namespace usages that are obsolete.", - Category = IssueCategories.Redundancies, - Severity = Severity.Hint, - IssueMarker = IssueMarker.GrayOut)] + Description = "Removes namespace usages that are obsolete.", + Category = IssueCategories.Redundancies, + Severity = Severity.Hint, + IssueMarker = IssueMarker.GrayOut)] public class RedundantNamespaceUsageIssue : ICodeIssueProvider { public IEnumerable GetIssues (BaseRefactoringContext context) @@ -62,24 +62,40 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring public override void VisitMemberReferenceExpression(MemberReferenceExpression memberReferenceExpression) { base.VisitMemberReferenceExpression(memberReferenceExpression); - - var result = ctx.Resolve(memberReferenceExpression.Target); + HandleMemberReference( + memberReferenceExpression, memberReferenceExpression.Target, memberReferenceExpression.MemberNameToken, memberReferenceExpression.TypeArguments, SimpleNameLookupMode.Expression, + script => { + script.Replace(memberReferenceExpression, RefactoringAstHelper.RemoveTarget(memberReferenceExpression)); + }); + } + + public override void VisitMemberType(MemberType memberType) + { + base.VisitMemberType(memberType); + HandleMemberReference( + memberType, memberType.Target, memberType.MemberNameToken, memberType.TypeArguments, SimpleNameLookupMode.Type, + script => { + script.Replace(memberType, RefactoringAstHelper.RemoveTarget(memberType)); + }); + } + + void HandleMemberReference(AstNode wholeNode, AstNode targetNode, Identifier memberName, IEnumerable typeArguments, SimpleNameLookupMode mode, Action