-
Notifications
You must be signed in to change notification settings - Fork 97
Code Issues
Jason Imison edited this page Apr 22, 2015
·
2 revisions
- It removes also the empty assingments and the usages
- Implements an abstract member as a virtual one
- Adds second accessor to a property.
- Removes redundant braces around a statement.
- Add name for argument including method, indexer invocation and Attibute Usage
- Adds an exception type specifier to general catch clauses.
- Add an exception description to the xml documentation
- Add one or more optional parameters to an invocation.
- Add missing using declaration.
- Converts a loop to a Linq expression
- Changes the access level of an entity declaration
- Computes the value of the current expression and replaces it.
- Converts an anonymous delegate into a lambda
- Convert assignment to 'if'
- Convert 'as' to cast.
- Replace bitwise flag comparison with call to 'Enum.HasFlag'
- Convert cast to 'as'.
- Convert dec to hex.
- Converts a do...while to a while loop (changing semantics).
- Converts '==' to call to 'object.Equals'
- Converts 'Equals' call to '=='
- Convert explicit implementation of an interface method to implicit implementation
- Works on 'foreach' loops that allow direct access to its elements.
- Works on 'for' loops.
- Replace 'Enum.HasFlag' call with bitwise flag comparison
- Convert hex to dec.
- Convert 'if' to '?:'
- Convert 'if' statement to '??' expression.
- Convert 'if' to 'return'
- Convert 'if' statement to 'switch' statement
- Convert implict implementation of an interface method to explicit implementation
- Converts expression of lambda body to statement
- Converts statement of lambda body to expression
- Converts a lambda to an anonymous delegate.
- Convert method group to anoymous method
- Convert method group to lambda expression
- Convert '*'/'/' to '<<'/'>>'
- Convert '??' to '?:'
- Convert 'return' to 'if'
- Convert '<<'/'>>' to '*'/'/'
- Convert 'switch' statement to 'if' statement
- Converts an object or collection initializer to explicit initializations.
- Converts a set of assignments and .Add() calls to an initializer.
- Convert while loop to do...while (changing semantics)
- Copies documented comments from base to overriding methods.
- Copies documented comments from interface to implementing methods.
- Creates a backing field for an auto property.
- Creates a changed event for an property.
- Creates a class declaration out of an object creation.
- Creates a constructor declaration out of an object creation.
- Create custom event implementation.
- Creates a delegate declaration out of an event declaration.
- Creates an enum value for a undefined enum value.
- Creates a standard OnXXX event method.
- Creates a field for a undefined variable.
- Creates an indexer declaration out of an indexer expression.
- Creates a local variable for a undefined variable.
- Creates a method declaration out of an invocation.
- Create overload without the selected parameter.
- Creates a property for a undefined variable.
- Found method without return type.
- Declare a local variable out of a selected expression.
- Converts the call into static method call syntax.
- Extract anonymous method to method of the containing type
- Extracts a field from a local variable declaration.
- Creates a new method out of selected text.
- Extracts a field from a local variable declaration.
- Swap 'Equals' target and argument
- Swaps left and right arguments.
- Generates a getter for a field.
- Generates a getter and setter for a field.
- Creates switch lables for enumerations.
- Implements abstract members from an abstract class.
- Creates an interface implementation.
- Creates an interface implementation.
- Creates a backing field for a not implemented property.
- Inlines a local variable.
- Inserts a signature to parameterless anonymous methods.
- Creates a constant for a non constant primitive expression.
- Creates a string.format call with the selection as parameter.
- Inverts an '?:' expression.
- Inverts an 'if ... else' expression.
- Inverts if and simplify branching
- Inverts a logical expression
- Iterates an IEnumerable with a foreach loop.
- Join local variable declaration and assignment.
- Join string literals.
- Convert LINQ query to fluent syntax
- Converts a LINQ query to the equivalent fluent syntax.
- Merge two nested 'if' statements.
- Moves a declaration to the parent scope.
- Negate an is expression.
- Negate a relational expression.
- put IDisposable inside 'using' construct
- Removes the backing store of a property and creates an auto property.
- Removes redundant braces around a statement.
- Removes a redundant exception type specifier from catch clauses.
- Removes a pre processor #region/#endregion directive.
- Replace assignment with postfix expression
- Replaces "" with string.Empty
- Replace operator assignment with assignment
- Replace postfix expression with assignment
- Replace assignment with operator assignment
- Reverse the direction of a for loop
- Inverts if and reduces branching
- Inverts if and reduces branching
- Sorts usings by their origin and then alphabetically.
- Splits local variable declaration and assignment.
- Split variable declaration with multiple variables into declarations with a single variable
- Splits an if statement into two nested if statements
- Splits string literal into two.
- Converts a 'is' into an 'as' and null check
- Converts local variable declaration to be explicit typed.
- Convert concatenation of strings and objects to string.Format()
- Converts local variable declaration to be implicit typed.
- Replace with call to OfType (extended cases)
- Parameter name differs in base declaration
- Finds potentially erroneous calls to Object.Equals.
- Type cast expression of incompatible type
- Check if a namespace corresponds to a file location
- This error occurs when trying to assign a value of an incompatible type.
- Since 'function' doesn't return void, a return keyword must be followed by an object expression
- Since 'function' returns void, a return keyword must not be followed by an object expression
- A case label value is duplicate.
- CS0169: Field is never used
- CS0618: Member is obsolete
- If two objects are equal then they must both have the same hash code
- A partial method must have a defining declaration that defines the signature (name, return type and parameters) of the method. The implementation or method body is optional.
- CS1729: Class does not contain a 0 argument constructor
- CS0184:Given expression is never of the provided type.
- Searches for missing interface implementations
- Static constructor should be parameterless
- Condition is always 'true' or always 'false'.
- Convert 'if' to '&&' expression
- Warns about using lock (this) or MethodImplOptions.Synchronized.
- Detects if fields & simple getters are used at the same time inside a class.
- Simplify negative relational expression
- Parameter is assigned but its value is never used.
- Value assigned to a variable or parameter is not used in all execution path.
- Description = ctx.TranslateString("Assignment is redundant");
- Description = ctx.TranslateString("Remove redundant assignment");
- Checks if static events are removed
- Removes 'private' modifiers that are not required.
- Code is unreachable.
- Validate Xml docs
- Access to closure variable from anonymous method when the variable is" +
- Access to closure variable from anonymous method when the variable is modified " +
- One method has the same body as other method
- Expression has some redundant items
- One Else-if was checked before so is not be true
- Finds parameters that can be demoted to a generic list.
- Highlights variables that can be declared in a nested scope.
- Bitwise operation on enum which has no [Flags] attribute
- Possible compare of value type with 'null'
- Comparison of floating point numbers with equality operator.
- '?:' expression has identical true and false branches.
- Delegate subtraction has unpredictable result
- Warns about calls to virtual member functions occuring in the constructor.
- 'for' loop control variable is never modified.
- Finds issues with format strings.
- Function does not reach its end or a 'return' statement by any of possible execution paths.
- Local variable has the same name as a member and hides it.
- Lowercase 'l' is often confused with '1'
- Member hides static member from outer class
- Method with optional parameter is hidden by overload
- Possible unassigned object created by 'new'
- Cannot resolve symbol in text argument
- Operator Is can be used instead of comparing object GetType() and instances of System.Type object.
- The value of an optional parameter in a method does not match the base method.
- Parameter has the same name as a member and hides it.
- Parameter name differs in partial method declaration
- Invocation of polymorphic field event leads to unpredictable result since invocation lists are not virtual
- Check if a readonly field is used as assignment target
- Possible multiple enumeration of IEnumerable
- Warns about static fields in generic types.
- [ThreadStatic] doesn't work with instance fields
- Warns about property or indexer setters and event adders or removers that do not use the value parameter.
- Checks for prohibited modifiers
- CS0183:Given expression is always of the provided type.
- Parameter has no matching param tag in the XML comment
- CS1717:Assignment made to same variable.
- Unassigned readonly field
- Name doesn't match the defined style for this entity.
- Non public methods are not found by NUnit.
- Anonymous method or lambda expression can be simplified to method group.
- Convert 'if' to '?:'
- Convert 'Nullable' to the short form 'T?'
- Convert property to auto property
- Convert to lambda with expression
- If all fields, properties and methods members are static, the class can be made static.
- Foreach loops are more efficient
- If an extension method is called as static method convert it to method syntax
- Use 'var' keyword when possible
- Suggests using the class declaring a static function when calling it.
- Base parameter has 'params' modifier, but missing in overrider
- Convert 'if-do-while' to 'while' statement
- Convert 'if' to '||' expression
- Convert local variable or field to constant
- ';' should be avoided. Use '{}' instead
- Convert field to readonly
- A member doesn't use 'this' object neither explicit nor implicit. It can be made static.
- Finds parameters that can be demoted to a base class.
- Possible mistaken call to 'object.GetType()'
- Constructor in abstract class should not be public
- Check for reference equality instead
- Replace with call to FirstOrDefault()
- Replace with call to LastOrDefault()
- Replace with call to OfType().Any()
- Replace with call to OfType().Count()
- Replace with call to OfType().First()
- Replace with call to OfType().FirstOrDefault()
- Replace with call to OfType
- Replace with call to OfType().Last()
- Replace with call to OfType().LastOrDefault()
- Replace with call to OfType().LongCount()
- Replace with call to OfType().Single()
- Replace with call to OfType().SingleOrDefault()
- Replace with call to OfType().Where()
- Replace with simple assignment
- Replace with single call to Any(...)
- Replace with single call to Average(...)
- Replace with single call to Count(...)
- Replace with single call to First(...)
- Replace with single call to FirstOrDefault(...)
- Replace with single call to Last(...)
- Replace with single call to LastOrDefault(...)
- Replace with single call to LongCount(...)
- Replace with single call to Max(...)
- Replace with single call to Min(...)
- Replace with single call to Single(...)
- Replace with single call to SingleOrDefault(...)
- Replace with single call to Sum(...)
- Uses shorter string.IsNullOrEmpty call instead of a longer condition.
- Conditional expression can be simplified
- Simplify LINQ expression
- Warns when a culture-aware 'Compare' call is used by default.
- Warns when a culture-aware 'string.CompareTo' call is used by default.
- Warns when a culture-aware 'EndsWith' call is used by default.
- Warns when a culture-aware 'IndexOf' call is used by default.
- Warns when a culture-aware 'LastIndexOf' call is used by default.
- Warns when a culture-aware 'StartsWith' call is used by default.
- Use array creation expression
- 'is' operator can be used
- Replace usages of 'Count()' with call to 'Any()'
- Use method IsInstanceOfType
- When initializing explicitly typed local variable or array type, array creation expression can be replaced with array initializer.
- Value of the expression can be determined at compile time
- Finds redundant null coalescing expressions such as expr ?? expr
- Double negation is meaningless.
- Empty statement is redundant
- true is redundant as for statement condition, thus can be safely ommited
- The name can be inferred from the initializer expression
- The parameter is optional with the same default value
- Finds calls to functions where optional parameters are used and the passed argument is the same as the default.
- Parentheses are redundant if attribute has no arguments.
- 'base.' is redundant and can safely be removed.
- Comparison of a boolean value with 'true' or 'false' constant.
- 'case' label is redundant.
- Type cast can be safely removed.
- Catch clause with a single 'throw' statement is redundant.
- Check for inequality before assignment is redundant if (x != value) x = value;
- Redundant comma in array initializer.
- Description = ctx.TranslateString("Redundant comma in object initializer");
- Description = ctx.TranslateString("Redundant comma in collection initializer");
- Description = ctx.TranslateString("Redundant comma in array initializer");
- When 'is' keyword is used, which implicitly check null.
- Explicit delegate creation expression is redundant
- Redundant empty 'default' switch branch
- Redundant empty finally block
- When object creation uses object or collection initializer, empty argument list is redundant.
- Redundant 'IEnumerable.Cast' or 'IEnumerable.OfType' call
- Redundant explicit type in array creation
- Redundant explicit size in array creation
- Redundant 'else' keyword.
- Redundant empty object or collection initializer.
- Removes namespace usages that are obsolete.
- Redundant 'string.ToCharArray()' call
- Redundant conditional expression
- Description = ctx.TranslateString("'this.' is redundant and can be removed safely.");
- Description = ctx.TranslateString("Remove 'this.'");
- Finds value type calls to ToString() which would be generated automatically by the compiler.
- Finds calls to ToString() which would be generated automatically by the compiler.
- Unsafe modifier in redundant in unsafe context or when no unsafe constructs are used.
- Using directive is not required and can safely be removed.
- Remove redundant statement
- Detects when no delegate parameter is used in the anonymous method body.
- An empty public constructor without paramaters is redundant.
- Empty destructor is redundant
- Empty namespace declaration is redundant
- The default underlying type of enums is int, so defining it explicitly is redundant.
- Local variable is never used.
- Class is declared partial but has only one part
- This is generated by the compiler and can be safely removed.
- Initializing field with default value is redundant.
- The override of a virtual member is redundant because it consists of only a call to the base
- 'params' is ignored on overrides
- 'sealed' modifier is redundant in sealed classes
- Label is never referenced
- Parameter is never used.
- Type parameter is never used.
- Tail recursive calls should be avoided.
- Loop can be converted into LINQ expression
- Part of the loop body can be converted into LINQ expression
- Explicit specifiction is redundant because they are inferred from arguments
- Detects usage of old-style TaskCompletionSource/ContinueWith and suggests using async/await instead
- Duplicated call to ToList() or ToArray()
- Finds throws that throws the caught exception and therefore should be empty.
- Finds calls to Object.GetHashCode inside overridden GetHashCode.
- Blocks in if/else can be simplified to any of the branches if they have the same block.
- Detects unnecessary usages of the NotNullAttribute.
- Warns when the task returned by an async call is ignored, which causes exceptions" +
- A warning should be given for the case: if (condition) {…} else if (condition) {…}.
- Detects when a member of a null value is used