Additional warning/error with interfaces in CORBA mode

Summary

Since in COM mode there is an error when interface does not have GUID, in CORBA mode compiler should supply some extra information.

  1. Emit a warning when there is no identification ("Interface string identifier missing"). It might not be a problem in general, but "as" casting does not work without interface identification;
  2. Emit a error when two interfaces have the same identification ("Duplicate interface string identifier"). If identifiers are assigned, then they must be unique (using GUIDs it is very likely to be so, might fail in large projects using normal strings);

Example Project

program corba_extra_information;

{$INTERFACES CORBA}

type

  Interface1 = interface // <-- WARNING: Interface string identifier missing
    procedure Method1();
  end;

  Interface2 = interface['identifier']
    procedure Method2();
  end;

  Interface3 = interface['another identifier']
    procedure Method3();
  end;

  Interface4 = interface['identifier'] // <-- ERROR: Duplicate interface string identifier
    procedure Method4();
  end;

begin

end.
Edited by Tomaso Tosolini