Generic support in Delphi took a very long time to get stabilised. Which means that compilers older than Delphi XE2 are hardly usable for code using generics. XE did get better, but Delphi 2010 and especially Delphi 2009 were hopeless.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Interesting. And I need to give some thought because when calling Assert.AreEqual<T1, T2>(T1 object1, T2 object2) where T1 does not equal T2 will map to Assert.AreEqual(object, object) without compile time warning.
A while ago, we encountered this error when doing merges in TFS (non-GIT ones):
---------------------------
Microsoft Visual Studio
---------------------------
Source Control Merge Wizard
Merge encountered 1 error(s) and 0 warning(s).
First error/warning encountered:
Server was unable to process request. ---> Object reference not set to an instance of an object.
See output tool window for information on any other errors.
---------------------------
OK Help
---------------------------
In the end this was caused by an out of disk space on the volume containing the TFS datastore.
var str =String.Join(", ",SupportedNotificationMethods.Select(s => s.ToString()));
You can read more about the String.Join method at MSDN. Older versions of String.Join don’t have an overload that takes an IEnumerable. In that case just call ToArray() after select.