In previous versions it was possible to assert that a non-nullable type ShouldNotBeNull, even though this logically makes no sense. For exmaple, the following would happily compile, but of course could never cause a test failure:
const long value = 1;
The class constraint was added to ShouldNotBeNull in v4, which means the above code will no longer compile. This is a good thing because it allows you to find and fix nonsensical tests in your codebase!
Func<string> customMessage removed
All overloads that accepted a Func<string> customMessage have been changed to string customMessage.
Diff tool functionality moved to DiffEngine
Diff tool functionality is now provided by DiffEngine.