2008-01-29  Sebastien Pouliot  <sebastien@ximian.com>

	* FloatComparisonRule.cs: Handle "this" and don't report defects on
	System.Single or System.Double (useful for mono itself :)
	* UseValueInPropertySetterRule.cs: Handle this[] with multiple
	parameters.

2008-01-16  Nestor Salceda  <nestor.salceda@gmail.com>

	* Makefile.am: Compile the rules with -langversion:linq flag.  This
	fixes the compiler error building the Correctness set.

2008-01-12  Sebastien Pouliot  <sebastien@ximian.com>

	* AvoidConstructorsInStaticTypesRule.cs: Use new Location ctor.
	* CallingEqualsWithNullArgRule.cs: Change three methods to static.
	Use new Location ctor.
	* DontCompareWithNaNRule.cs: New. Rule that reports comparing (with 
	either ==, != or Equals) a floating-point value with NaN.
	* FloatComparisonRule.cs: Remove the recently added checks for NaN 
	(see new rule). Simplify error reporting.
	* NonNullAttributeCollector.cs: Change one method to static.
	* NullDerefAnalysis.cs: Change two methods to static. Use new 
	Location ctor.
	* NullDerefFrame.cs: Change one method to static.
	* UseValueInPropertySetterRule.cs: Don't report empty setters. 
	There's too many of them, mostly on purpose, so it hides the real
	problems.
	* dataflow/BasicBlock.cs: Change fields to internal.
	* dataflow/CFG.cs: Change four methods to static.
	* Gendarme.Rules.Correctness.xml.in: Add rule description.
	* Makefile.am: Add new rule and tests to the build.

2008-01-06  Sebastien Pouliot  <sebastien@ximian.com> 

	* BadRecursiveInvocationRule.cs: Detect more case of endless 
	recursion, even where parameters aren't identical. Still not perfect
	(see ignored unit tests) but can process corlib without false
	positives.
	* FloatComparisonRule.cs: Remove object array of special values 
	(float and double constants). Change OpCode array to static
	(to reduce memory allocations). Add support to detect Double.Equals
	and support for Conv_R_Un, Ldarg_0 (for static methods), Ldelem_R4
	and Ldelem_R8 instructions (for arrays).
	* MethodCanBeMadeStaticRule.cs: Avoid checking constructors.
	* UseValueInPropertySetterRule.cs: Add support for Ldarga[_S] when
	checking for value. Report a different message for empty setters (to
	ease the reviewer job ;-) since it's less likely an error.

2008-01-05  Sebastien Pouliot  <sebastien@ximian.com>

	* MethodCanBeMadeStaticRule.cs: Ignore generated code. Return a 
	complete message (not just a failure).
	* NonNullAttribute.cs: seal the attribute (fix warning)
	* UseValueInPropertySetterRule.cs: Fix rule to work properly with
	static methods.

2008-01-05  Nestor Salceda  <nestor.salceda@gmail.com>

	* AvoidConstructorsInStaticTypesRule.cs: Use rocks for check if a method
	is autogenerated.

2008-01-05  Nestor Salceda  <nestor.salceda@gmail.com>
	
	* Makefile.am: Compile with -langversion:linq parameter.
	* UseValueInPropertySetterRule.cs: Use rocks for check if the method
	is a setter property.

2007-12-16  Sebastien Pouliot  <sebastien@ximian.com>

	* Makefile.am: Remove OpCodeConstants.cs from build.

2007-12-16  Sebastien Pouliot  <sebastien@ximian.com> 

	* AvoidConstructorsInStaticTypesRule.cs: The rule doesn't apply for
	compiler generated types. Avoid creating MessageCollection if 
	unneeded (e.g. no error).

2007-12-16  Sebastien Pouliot  <sebastien@ximian.com>

	* BadRecursiveInvocationRule.cs: Use Cecil definitions, not
	OpCodeConstants.
	* NullDerefAnalysis.cs: Use Cecil definitions, not OpCodeConstants.
	Remove bunch of unneeded code duplication in switch.
	* pCodeConstants.c: Removed. Cecil provides them.

2007-12-16  Sebastien Pouliot  <sebastien@ximian.com> 

	* NullDerefAnalysis.cs: Avoid InvalidCastException
	* UseValueInPropertySetterRule.cs: Don't report error when a setter
	is simply throwing an exception.

2007-11-30  Nestor Salceda  <nestor.salceda@gmail.com>

	* FloatComparisonRule.cs: Extract a method for avoid the Long Method
	smell.  This fixes the warning in the self-test.

2007-11-22  Sebastien Pouliot  <sebastien@ximian.com> 

	* NullDerefFrame.cs: Remove use of /n using StringBuilder.AppendLine
	* dataflow/CFG.cs: Remove use of /n using StreamWriter.WriteLine

2007-11-22  Sebastien Pouliot  <sebastien@ximian.com>

	* UseValueInPropertySetterRule.cs: Apply JB's suggestion to use
	SemanticsAttributes instead of the SpecialName + "set_" checks.

2007-11-22  Sebastien Pouliot  <sebastien@ximian.com> 

	* UseValueInPropertySetterRule.cs: Avoid creating MessageCollection
	if unneeded (e.g. no error). Stop looping instruction when we 
	determine that value has been accessed.

2007-11-21  Sebastien Pouliot  <sebastien@ximian.com> 

	* CallingEqualsWithNullArgRule.cs: Avoid creating MessageCollection 
	if unneeded (e.g. no error). Check for calli (along with call and 
	callvirt). Check previous instructions (not just the last one) for
	ldnull (skipping NOP and constrained). Fix bug on MS.NET where a 
	constrained instruction could be found just before).

2007-11-03  Nestor Salceda  <nestor.salceda@gmail.com>
	
	* Gendarme.Rules.Correctness.xml.in: Added the Uri for
	CallingEqualsWithNullArgRule, AvoidConstructorsInStaticTypesRule,
	FloatComparisonRule, UseValueInPropertySetterRule.

2007-11-03  Nestor Salceda  <nestor.salceda@gmail.com>

	* AvoidConstructorsInStaticTypesRule.cs:  Added the code for avoid false
	positives if the class doesn't contains fields and methods.

2007-10-28  Nestor Salceda  <nestor.salceda@gmail.com>

	* Gendarme.Rules.Correctness.xml.in: Added documentation for
	AvoidConstructorsInStaticTypes, FloatComparisonRule and
	UseValueInPropertySetterRule.

2007-10-19  Nestor Salceda  <nestor.salceda@gmail.com>
	
	* UseValueInPropertySetterRule.cs:  If a method is empty, then the rule
	will skip this method, because could be an stub or empty method.  This
	fixes the NullReferenceException if the method body is empty.

2007-10-19  Nestor Salceda  <nestor.salceda@gmail.com>

	* FloatComparisonRule.cs: Before get the instructions from the method
	body, the existence of method body should be checked.  This fixes the
	NullReferenceException.

2007-10-19  Nestor Salceda  <nestor.salceda@gmail.com>

	* CallingEqualsWithNullArgRule.cs:  Before get the instructions from a
	method body, the existence of method body should be checked.  Perhaps
	exists better solutions for this case, but this solution fixes the
	NullReferenceException.

2007-10-09  Nestor Salceda  <nestor.salceda@gmail.com>

	* Makefile.am: Remove the duplicate entry of 
	CallingEqualsWithNullArgRule.cs in the building process.  This fixes a
	compiler warning.

2007-10-07  Sebastien Pouliot  <sebastien@ximian.com>

	* AvoidConstructorsInStaticTypesRule.cs: Unit tests (Lukasz Knop, 
	GSoC 2007)
	* CallingEqualsWithNullArgRule.cs: New rule (Nidhi Rawal, GSoC 2007)
	* FloatComparisonRule.cs: Unit tests (Lukasz Knop, GSoC 2007)
	* UseValueInPropertySetterRule.cs: Unit tests (Lukasz Knop, GSoC 2007)
	* Gendarme.Rules.Correctness.xml.in: Update rule description.
	* Gendarme.Rules.Correctness.mdp: Update project file.
	* Makefile.am: Update build file.

2007-03-12  Alp Toker  <alp@atoker.com>

	* Gendarme.Rules.Correctness.xml.in: Typo fix.

2007-02-27  Jb Evain  <jbevain@gmail.com>

	* MethodCanBeMadeStatic.cs:
		Add new rule.

2006-10-16  Sebastien Pouliot  <sebastien@ximian.com>

	* BadRecursiveInvocationRule.cs: Fix case where the compiler (CSC)
	selects the base class to call (fix by Aaron Tomb). Also remove the
	check for parameter names which may not match in the base class.

2006-10-15  Sebastien Pouliot  <sebastien@ximian.com>

	* Gendarme.Rules.Concurrency.xml.in: Update Uri for rules (to generate
	more useful reports).	

2006-09-28  Sebastien Pouliot  <sebastien@ximian.com>

	* Makefile.am: Adjust EXTRA_DIST to include project files in tarballs.

2006-09-28  Christian Birkl  <christian.birkl@gmail.com>

	* Gendarme.Rules.Correctness.csproj: Included ChangeLog
	* BadRecursiveInvocationRule.cs, NullDerefRule.cs, 
	NullDerefAnalysis.cs: Migrated untyped IList messages collection to 
	typed MessageCollection	class.
	  
2006-07-31  Sebastien Pouliot  <sebastien@ximian.com>

	* Gendarme.Rules.Correctness.mdp: New. Project file for MonoDevelop.

2006-06-13  Sebastien Pouliot  <sebastien@ximian.com>

	* Makefile.am: Use -pkg:mono-nunit to reference nunit assemblies.
	Added self-test target to promote compliance ;-)
