2008-07-31  Sebastien Pouliot  <sebastien@ximian.com>

	* ObsoleteMessagesShouldNotBeEmptyRule.cs: Speed up rule. Only
	18 out of 72 assemblies (Mono 2.0 profile) refers to the
	ObsoleteAttribute type (+1 for mscorlib that defines it).

2008-07-13  Sebastien Pouliot  <sebastien@ximian.com>

	* DoNotForgetNotImplementedMethodsRule.cs: New. Rule to check if
	some method are incomplete (e.g. throwing NotImplementedException)
	[committed for Cedric Vivier with a few changes from myself]
	* Gendarme.Rules.BadPractice.mdp: Update MD project file.
	* Makefile.am: Add rule/test to the build.

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

	* ObsoleteMessagesShouldNotBeEmptyRule.cs: Remove unused field
	(self-test)

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

	* Makefile.am: Start using ../common.make

2008-07-04  Jb Evain  <jbevain@novell.com>

	* AvoidCallingProblematicMethodsRule.cs: refactor to avoid
	creating a new delegate type by using Func<,>, and use the
	lambda syntax to shorten anonymous methods declarations.

2008-07-03  Sebastien Pouliot  <sebastien@ximian.com>

	* AvoidCallingProblematicMethodsRule.cs: Use IComparer instead
	of IEqualityComparer and avoid the "constant" GetHashCode hack.
	Use a custom delagate in order to remove the struct allocations 
	and make the source code smaller (and easier to test).

2008-07-03  Nestor Salceda  <nestor.salceda@gmail.com>

	* AvoidCallingProblematicMethodsRule.cs: New. Rule that check for
	potentially damaging / dangerous methods calls.
	* Gendarme.Rules.BadPractice.mdp: Update MD project file.
	* Makefile.am: Add rule/test to the build.

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

	* AvoidVisibleConstantFieldRule.cs: New. Rule that check
	for a constant fields visible to other assemblies. Using them
	makes the value, not a reference to the field, part of the 
	assemblies that reference the field. This requires all those
	assemblies to be recompiled if the value change.
	* Gendarme.Rules.BadPractice.mdp: Update MD project file.
	* Makefile.am: Add rule/test to the build.

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

	* ReplaceIncompleteOddnessCheckRule.cs: New. Rule that check
	for a common, yet incomplete, oddness check (that fails when 
	using negative numbers).
	* Gendarme.Rules.BadPractice.mdp: Update MD project file.
	* Makefile.am: Add rule/test to the build.

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

	* CheckNewExceptionWithoutThrowingRule.cs: Rename 
	StackEntryAnalysis.UsageResult to StackEntryUsageResult
	* CheckNewThreadWithoutStartRule.cs: Rename 
	StackEntryAnalysis.UsageResult to StackEntryUsageResult

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

	* ObsoleteMessagesShouldNotBeEmptyRule.cs: New. Check that 
	when [Obsolete] is used a description is provided.
	* Makefile.am: Add rule/test to the build.

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

	* EqualShouldHandleNullArgRule.cs: Simplify method (self-test cc).
	Fix all known positives (3) that were still found in Mono BCL.

2008-04-25  Sebastien Pouliot  <sebastien@ximian.com>

	* CheckNewThreadWithoutStartRule.cs: Use Initialize to avoid 
	executing the rule on some assemblies (52 out of 72 for Mono 2.0)
	* GetEntryAssemblyMayReturnNullRule.cs: Use Initialize to avoid
	executing the rule on some assemblies (36 out of 72 for Mono 2.0)
	and when the assembly is an EXE.

2008-04-23  Sebastien Pouliot  <sebastien@ximian.com>

	* DisableDebuggingCodeRule.cs: Change Initialize so the rule 
	applies to corlib too (which defines, not refer to Console type).
	* CheckNewExceptionWithoutThrowingRule.cs: Use Inherits (instead
	of checking name suffix) to find Exception-devired types.

2008-03-07  Sebastien Pouliot  <sebastien@ximian.com>

	* DisableDebuggingCodeRule.cs: New. Rule to check for debugging
	CWL left inside assemblies (ref: bug #366450)
	* Gendarme.Rules.BadPractice.mdp: Update MD project file.
	* Makefile.am: Add rule/test to the build.

2008-02-16  Sebastien Pouliot  <sebastien@ximian.com>

	* CloneMethodShouldNotReturnNullRule: Remove unused method.

2008-02-15  Sebastien Pouliot  <sebastien@ximian.com>

	* CheckNewExceptionWithoutThrowingRule.cs
	* CheckNewThreadWithoutStartRule.cs
	* CloneMethodShouldNotReturnNullRule.cs
	* ConstructorShouldNotCallVirtualMethodsRule.cs
	* EqualShouldHandleNullArgRule.cs
	* GetEntryAssemblyMayReturnNullRule.cs
	* ToStringReturnsNullRule.cs
		Update rules wrt framework changes.

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

	* CheckNewExceptionWithoutThrowingRule.cs: New. Rule to check that
	all exception we create are thrown (or returned) from all methods. 
	[Andreas Noever]
	* CheckNewThreadWithoutStartRule.cs: New. Rule to check that all
	threads we create are started (or returned) from all methods.
	[Andreas Noever]
	* Gendarme.Rules.BadPractice.xml.in: Add rules descriptions.
	* Makefile.am: Add rules/tests to the build.

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

	* ImplementingEqualsButNotGetHashCodeAndViceVersaRule.cs: Rule
	moves (with tests) into Design since it affects the API.
	* ToStringReturnsNullRule.cs: Simplification to avoid uncommon cases
	that added *LOTS* of false positives while still missing some 
	real defects. Now a rock-ified ITypeRule with much lower memory 
	requirements.
	* Gendarme.Rules.BadPractice.xml.in: Remove (moved) definition.
	* Makefile.am: Remove (moved) rule and tests

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

	* ConstructorShouldNotCallVirtualMethodsRule.cs: Add recursive 
	checks for non-virtual calls (as they can lead to virtual calls). Add
	check for final methods. Add check for calling 'this' sub-classes 
	(versus calling them on other instances, other types)
	* EqualShouldHandleNullArgRule.cs: Change to ITypeRule (and locate
	Equals) and to use rocks. Reimplemented HandlesNullArg based on more
	extensive unit tests. False positives are mostly history :)

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

	* ConstructorShouldNotCallVirtualMethodsRule.cs: New. Rule to
	find every virtual calls made inside constructor of unsealed types.
	* GetEntryAssemblyMayReturnNullRule.cs: New. Rule to detect usage
	of Assembly.GetEntryAssembly which returns null when called outside 
	the root application domain [Daniel Abramov]
	* Gendarme.Rules.BadPractice.mdp: Update MD project file.
	* Gendarme.Rules.BadPractice.xml.in: Add rules descriptions.
	* Makefile.am: Add rules/tests to the build.

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

	* CloneMethodShouldNotReturnNullRule.cs: Use new Location ctor.
	* EqualShouldHandleNullArgRule.cs: Use new Location ctor.
	* ImplementingEqualsButNotGetHashCodeAndViceVersaRule.cs: Use new 
	Location ctor.
	* ToStringReturnsNullRule.cs: Use new Location ctor.

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

	* CloneMethodShouldNotReturnNullRule.cs: Use rocks and turn a method
	to static.
	* EqualShouldHandleNullArgRule.cs: Turn some methods to static.
	* ToStringReturnsNullRule.cs: Turn some methods to static.

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

	* ToStringReturnsNullRule.cs: Avoid creating MessageCollection 
	until/unless it's needed.

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

	* EqualShouldHandleNullArgRule.cs: Don't create a MessageCollection
	unless we return a message. Avoid NRE if Equals simply return a 
	boolean. Add FIXME to rework logic for MS compilers in debug mode.

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

	* CloneMethodShouldNotReturnNullRule.cs: Don't create a 
	MessageCollection unless we return a message. IL check logic is too
	simplistic, added a little more logic (but it's still needs to be 
	fixed) so the test run correctly under Windows (VS in Debug mode 
	really generates crap).
	* ImplementingEqualsButNotGetHashCodeAndViceVersaRule.cs: Avoid 
	creating MessageCollection unless needed.

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

	* ToStringReturnsNullRule.cs: Fixed NullReferenceException when doesn't
	exist the key in the hash table.  Some internal refactoring (fix the
	selection for the ToString () method).

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

	* Gendarme.Rules.BadPractice.xml.in: Put the version attribute with 
	autotools helpers. Added documentation for these rules.

2007-10-19  Nestor Salceda  <nestor.salceda@gmail.com>
	
	* CloneMethodShouldNotReturnNullRule.cs: Fixed NullReferenceException
	when try to inspect a method without body.

2007-10-16  Nestor Salceda  <nestor.salceda@gmail.com>
	
	* ToStringReturnsNullRule.cs: Fixed NullReferenceException when try
	to inspect a method without instructions.

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

	* CloneMethodShouldNotReturnNullRule.cs: New rule (Nidhi Rawal, GSoC 
	2007)
	* EqualShouldHandleNullArgRule.cs: New rule (Nidhi Rawal, GSoC 2007)
	* ImplementingEqualsButNotGetHashCodeAndViceVersaRule.cs: New rule
	(Nidhi Rawal, GSoC 2007)
	* ToStringReturnsNullRule.cs: New rule (Nidhi Rawal, GSoC 2007)
	* Gendarme.Rules.BadPractice.mdp: Project file for MonoDevelop.
	* Makefile.am: Build file.
