title: Cannot access protected symbol?
body: <p>I'm getting</p>
  
  <blockquote>
    <p>cannot access protected symbol TParent.Test</p>
  </blockquote>
  
  <p>for following code:</p>
  
  <p>In Unit1:</p>
  
  <pre><code>TParent = class
  protected
    function Test: TParent;
  end;
  
  implementation
  
  function TParent.Test: TParent;
  begin
    Result := Self
  end;
  </code></pre>
  
  <p>In Unit2:</p>
  
  <pre><code>uses Unit1;
  
  type
  
  TChild = class(TParent)
  end;
  
  implementation
  
  var c: TChild;
  begin
    c := TChild.Create;
    c.Test.Test
  end;
  </code></pre>
  
  <p>Shouldn't the return value be accessible to TChild?</p>
  
  <pre><code>c.Test;
  c.Test
  </code></pre>
  
  <p>works, of course.</p>