title: Duplicate constructor warning in Delphi XE2
body: <p>I have the following .dpr</p>
  
  <pre><code>program TPWDDBManager;
  {
  
    Delphi DUnit Test Project
    -------------------------
    This project contains the DUnit test framework and the GUI/Console test runners.
    Add "CONSOLE_TESTRUNNER" to the conditional defines entry in the project options
    to use the console test runner.  Otherwise the GUI test runner will be used by
    default.
  
  }
  
  {$IFDEF CONSOLE_TESTRUNNER}
  {$APPTYPE CONSOLE}
  {$ENDIF}
  
  uses
    DUnitTestRunner,
    TestuTPWDDBManager in 'TestuTPWDDBManager.pas';
  
  {$R *.RES}
  
  begin
    DUnitTestRunner.RunRegisteredTests;
  end.
  </code></pre>
  
  <p>and the following unit:</p>
  
  <pre><code>unit TestuTPWDDBManager;
  {
  
    Delphi DUnit Test Case
    ----------------------
    This unit contains a skeleton test case class generated by the Test Case Wizard.
    Modify the generated code to correctly setup and call the methods from the unit
    being tested.
  
  }
  
  interface
  
  uses TestFramework;
  
  type
    // Test methods for class TPWDDBManager
  
    TestTPWDDBManager = class(TTestCase)
    strict private
    public
      procedure SetUp; override;
      procedure TearDown; override;
    published
      procedure TestUpdateVersion;
      procedure TestGetPWD;
      procedure TestChangePWD;
      procedure TestReset;
      procedure TestIsReset;
  
    end;
  
    Idlg = interface(IInvokable)
      ['{E369D075-E3CA-4BB3-896C-0D623DE5798F}']
  
    end;
  
  implementation
  
  uses SysUtils,Delphi.Mocks;
  
  procedure TestTPWDDBManager.SetUp;
  var
    FMessageDLG : TMock&lt;IDlg&gt;;
  begin
  end;
  
  procedure TestTPWDDBManager.TearDown;
  begin
  end;
  
  procedure TestTPWDDBManager.TestGetPWD;
  begin
    // TODO: Validate method results
  end;
  
  procedure TestTPWDDBManager.TestIsReset;
  begin
  end;
  
  procedure TestTPWDDBManager.TestChangePWD;
  begin
  end;
  
  procedure TestTPWDDBManager.TestReset;
  begin
  end;
  
  procedure TestTPWDDBManager.TestUpdateVersion;
  begin
  
  end;
  
  initialization
    // Register any test cases with the test runner
    RegisterTest(TestTPWDDBManager.Suite);
  end.
  </code></pre>
  
  <p>When I compile I get several warnings like:</p>
  
  <blockquote>
    <p>[DCC Warning] W1029 Duplicate constructor 'TExpectation.CreateAfter'
    with identical parameters will be inacessible from C++ [DCC Warning]
    W1029 Duplicate constructor 'TExpectation.CreateAfterWhen' with
    identical parameters will be inacessible from C++ [DCC Warning] W1029
    Duplicate constructor 'TExpectation.CreateAtLeastOnce' with identical
    parameters will be inacessible from C++</p>
  </blockquote>
  
  <p>but if I remove the line <code>FMessageDLG : TMock&lt;IDlg&gt;;</code> then the warning disappears</p>
  
  <p>any idea of how to solve this ?</p>