//public bool AreEqual(bool p1, bool p2) //{ // if (p1 = p2) // return true; // p1 = p2; // return p2 = p1; //} private void ipAssignmentIntended_CheckCodeIssues(object sender, CheckCodeIssuesEventArgs ea) { // Not inside the UI thread anymore. // Don't use CodeRush.Source.Xxxxx, in fact, don't use any CodeRush.Xxxxxx is my recommendation. ElementTypeFilter assignmentExpressionFilter = new ElementTypeFilter(LanguageElementType.AssignmentExpression); IEnumerable <IElement> enumerable = ea.GetEnumerable(ea.Scope, assignmentExpressionFilter); foreach (IElement element in enumerable) { // For every LanguageElement type, there is a corresponding interface, that starts with an I. IAssignmentExpression assignmentExpression = element as IAssignmentExpression; if (assignmentExpression == null) { continue; } TextPoint start = assignmentExpression.LeftSide.FirstNameRange.Start; TextPoint end = assignmentExpression.RightSide.FirstNameRange.End; SourceRange range = new SourceRange(start, end); ea.AddIssue(CodeIssueType.Warning, range, cpAssignmentExpressionToEqualityCheck.CodeIssueMessage); // Other code we were playing with... //AssignmentExpression assignmentExpressionReal = LanguageElementRestorer.ConvertToLanguageElement(element) as AssignmentExpression; //assignmentExpressionReal.OperatorRange //ea.AddIssue(CodeIssueType.Warning, assignmentExpression.Range, cpAssignmentExpressionToEqualityCheck.CodeIssueMessage); } }
public void CheckCodeIssue( CheckCodeIssuesEventArgs eventArg ) { var types = new LanguageElementType[] { LanguageElementType.MethodCall }; var elementFilter = new ElementTypeFilter( types ); var enumerable = eventArg.GetEnumerable( eventArg.Scope, elementFilter ); foreach ( var element in enumerable ) { IMethodCallStatement methodCall = element as IMethodCallStatement; if ( methodCall == null ) continue; IMethodElement methodDeclaration = methodCall.GetDeclaration() as IMethodElement; if ( methodDeclaration == null ) continue; if ( methodDeclaration.MethodType == MethodTypeEnum.Function ) { eventArg.AddHint( methodCall.FirstNameRange, "Return value is not used" ); } } }
//public bool AreEqual(bool p1, bool p2) //{ // if (p1 = p2) // return true; // p1 = p2; // return p2 = p1; //} private void ipAssignmentIntended_CheckCodeIssues(object sender, CheckCodeIssuesEventArgs ea) { // Not inside the UI thread anymore. // Don't use CodeRush.Source.Xxxxx, in fact, don't use any CodeRush.Xxxxxx is my recommendation. ElementTypeFilter assignmentExpressionFilter = new ElementTypeFilter(LanguageElementType.AssignmentExpression); IEnumerable<IElement> enumerable = ea.GetEnumerable(ea.Scope, assignmentExpressionFilter); foreach (IElement element in enumerable) { // For every LanguageElement type, there is a corresponding interface, that starts with an I. IAssignmentExpression assignmentExpression = element as IAssignmentExpression; if (assignmentExpression == null) continue; TextPoint start = assignmentExpression.LeftSide.FirstNameRange.Start; TextPoint end = assignmentExpression.RightSide.FirstNameRange.End; SourceRange range = new SourceRange(start, end); ea.AddIssue(CodeIssueType.Warning, range, cpAssignmentExpressionToEqualityCheck.CodeIssueMessage); // Other code we were playing with... //AssignmentExpression assignmentExpressionReal = LanguageElementRestorer.ConvertToLanguageElement(element) as AssignmentExpression; //assignmentExpressionReal.OperatorRange //ea.AddIssue(CodeIssueType.Warning, assignmentExpression.Range, cpAssignmentExpressionToEqualityCheck.CodeIssueMessage); } }