<p dir="ltr">Hello,</p>
<p dir="ltr">I've spend some time adapting my beta project to use the new rtl-generics classes, however, I have some issues regarding to TDictionary class. Let's go to a test using the example below:</p>
<p dir="ltr">=== begin code ===</p>
<p dir="ltr">var<br>
  hash: TDictionary<string, string>;<br>
begin<br>
  hash := TDictionary<string, string>.Create;<br>
end</p>
<p dir="ltr">=== end code ===</p>
<p dir="ltr">You may get the following compiler log:</p>
<p dir="ltr">=== begin log ===</p>
<p dir="ltr">generics.dictionariesh.inc(231,33) Hint: Parameter "AFrom" not used<br>
generics.dictionariesh.inc(231,40) Hint: Parameter "ATo" not used<br>
generics.dictionariesh.inc(54,27) Hint: Parameter "ACapacity" not used<br>
generics.dictionariesh.inc(58,32) Hint: Parameter "AValue" not used<br>
generics.dictionariesh.inc(69,28) Hint: Parameter "APair" not used<br>
generics.dictionariesh.inc(87,36) Hint: Parameter "ASize" not used<br>
generics.dictionariesh.inc(155,39) Hint: Parameter "AItems" not used<br>
generics.dictionariesh.inc(155,71) Hint: Parameter "AKey" not used<br>
generics.dictionariesh.inc(155,87) Hint: Parameter "AHash" not used<br>
generics.defaults.pas(47,31) Hint: Parameter "ALeft" not used<br>
generics.defaults.pas(47,38) Hint: Parameter "ARight" not used<br>
generics.defaults.pas(69,35) Hint: Parameter "AValues" not used<br>
generics.defaults.pas(69,56) Hint: Parameter "ALeft" not used<br>
generics.defaults.pas(69,63) Hint: Parameter "ARight" not used<br>
generics.defaults.pas(69,86) Hint: Parameter "AComparer" not used<br>
generics.defaults.pas(78,42) Hint: Parameter "AValues" not used<br>
generics.defaults.pas(78,72) Hint: Parameter "AItem" not used<br>
generics.defaults.pas(79,11) Hint: Parameter "AFoundIndex" not used<br>
generics.defaults.pas(79,39) Hint: Parameter "AComparer" not used<br>
generics.defaults.pas(80,7) Hint: Parameter "AIndex" not used<br>
generics.defaults.pas(80,15) Hint: Parameter "ACount" not used<br>
generics.defaults.pas(143,27) Hint: Parameter "AValue" not used<br>
generics.defaults.pas(47,31) Hint: Parameter "ALeft" not used<br>
generics.defaults.pas(47,38) Hint: Parameter "ARight" not used<br>
generics.defaults.pas(69,35) Hint: Parameter "AValues" not used<br>
generics.defaults.pas(69,56) Hint: Parameter "ALeft" not used<br>
generics.defaults.pas(69,63) Hint: Parameter "ARight" not used<br>
generics.defaults.pas(69,86) Hint: Parameter "AComparer" not used<br>
generics.defaults.pas(78,42) Hint: Parameter "AValues" not used<br>
generics.defaults.pas(78,72) Hint: Parameter "AItem" not used<br>
generics.defaults.pas(79,11) Hint: Parameter "AFoundIndex" not used<br>
generics.defaults.pas(79,39) Hint: Parameter "AComparer" not used<br>
generics.defaults.pas(80,7) Hint: Parameter "AIndex" not used<br>
generics.defaults.pas(80,15) Hint: Parameter "ACount" not used<br>
generics.collections.pas(143,27) Hint: Parameter "AValue" not used<br>
generics.defaults.pas(767,30) Hint: Parameter "ALeft" not used<br>
generics.defaults.pas(767,37) Hint: Parameter "ARight" not used<br>
generics.defaults.pas(768,35) Hint: Parameter "AValue" not used</p>
<p dir="ltr">=== end log ===</p>
<p dir="ltr">Those hints can be a problem when we also need to check the log from other classes, because it pollute the windows messages, so a suggestion is just to declare the "{$WARN 5024 OFF : Parameter "$1" not used}" in the rtl-generics units.</p>
<p dir="ltr">The question is regarding to TDictionary, because I'm not sure if it is a concrete class on its actual implementation stage (I'm using FPC from trunk). See the warnings below:</p>
<p dir="ltr">=== begin warns ===</p>
<p dir="ltr">generics.dictionaries.inc(158,92) Warning: Constructing a class "TCustomDictionaryEnumerator$4$crc7DF95A99" with abstract method "DoMoveNext"<br>
generics.dictionaries.inc(158,92) Warning: Constructing a class "TCustomDictionaryEnumerator$4$crc7DF95A99" with abstract method "GetCurrent"<br>
generics.dictionaries.inc(158,92) Warning: Constructing a class "TCustomDictionaryEnumerator$4$crc7DF95A99" with abstract method "DoMoveNext"<br>
generics.dictionaries.inc(158,92) Warning: Constructing a class "TCustomDictionaryEnumerator$4$crc7DF95A99" with abstract method "GetCurrent"</p>
<p dir="ltr">=== end warns ===</p>
<p dir="ltr">I want to use the TDictionary in a beta project, but I'm not sure if today it is only for experimental purposes. :-/</p>
<p dir="ltr">Thank you!</p>
<p dir="ltr">--<br>
Silvio Clécio</p>