<div dir="ltr"><div class="gmail_extra">More ...</div><div class="gmail_extra"><br></div><div class="gmail_extra">// This works</div><div class="gmail_extra"><br></div><div class="gmail_extra"><div class="gmail_extra">function TestIsAs2<T: TObject>(Item: TObject): T;</div><div class="gmail_extra">begin</div><div class="gmail_extra">  if Item is T then</div><div class="gmail_extra">  begin</div><div class="gmail_extra">    Exit(Item as T);</div><div class="gmail_extra">  end;</div><div class="gmail_extra">  Result := nil;</div><div class="gmail_extra">end;</div><div><br></div><div>Now before you say "of course" :) I find it interesting because is and as are operators, just like > greater than and < less than are operators. In previous examples no constraints were needed to use operators.</div><div><br></div><div>Having said that, I am find with being forced to use a constraint with "as" and "is", because they are operators which cannot be overloaded.</div><div><br></div><div>Good work!</div></div></div>