Good question, I just had a poke around and I noticed other assertions don't check for this, but this leads me to more questions.
 
 * `GuardClauseAssertion` uses `ReflectedType`, and explicitly checks for `EnsureTypeIsNotGeneric`. 
 * `ConstructorInitializedMemberAssertion` uses `DeclaringType`, does not check for generics.

After reading the documentation on MSDN for [ReflectedType](http://msdn.microsoft.com/en-us/library/system.reflection.memberinfo.reflectedtype.aspx) and [DeclaringType](http://msdn.microsoft.com/en-us/library/system.reflection.memberinfo.declaringtype.aspx), I believe both CIMA and Null*Assertion classes should use `ReflectedType`, as this will give us the `Type` that was used to obtain the method which seems important if we're going to get autofixture to create an instance of it.

From MSDN doco for `ReflectedType`:
> If the MemberInfo object is a global member (that is, if it was obtained from the Module.GetMethods method, which returns global methods on a module), the returned DeclaringType will be null.