[comp.lang.eiffel] Problems with repeated inheritance

bl@tnoibbc.UUCP (Bart Luijten) (11/16/90)

Hello,

We are trying to use the Repeated Inheritence mechanism in EIFFEL, but
are having some problems. We have reduced the problem to the following two
EIFFEL classes DAD and SON, where class SON inherits twice from class DAD 
(this is hypothetic, of course). The classes DAD and SON are listed below:

	class DAD 
	export
  	  Number
	feature
  	  List: LINKED_LIST[INTEGER];
    	  Create is
    	    do
      	      List.Create
    	    end;
  	  Number: INTEGER is
    	    do
      	      Result := List.Size
    	    end;
	end -- class DAD


	class SON 
	export
  	  Number1, Number2
	inherit
  	  DAD
    	    rename List as List1,
	           Number as Number1;
  	  DAD
    	    rename List as List2,
	   	   Number as Number2
	feature
  	  Create is
    	    do
      	      List1.Create;
      	      List2.Create
    	    end;
	end -- class SON

When we try to compile the class SON, we get the following error message:

	Pass 2 on class son
	Repeated inheritance - Duplicated feature: number2
		(Original feature: number in class dad )
	"son", 15: Remote notation may not be used in routine number2
		that is replicated under repeated inheritance.
	Fatal error. Cannot resume.

	*** ec: pass2 canceled

If anyone has encountered this problem before, and has found a solution, or
could tell us if this is a bug, we would like to know.

Bart Luiten and Bart Luijten (this is no joke!)

                      : TNO - IBBC                    INTERNET : bl@tnoibbc
                      : PO-box 49                     DOMAIN   : bl@ibbc.tno.nl
                      : 2600 AA  Delft                FAX      : +31 15 843990
                      : the Netherlands               VOICE    : +31 15 842357
-- 
Bart "DiBarto" Luijten: TNO - IBBC                    INTERNET : bl@tnoibbc
                      : PO-box 49                     DOMAIN   : bl@ibbc.tno.nl
                      : 2600 AA  Delft                FAX      : +31 15 843990
                      : the Netherlands               VOICE    : +31 15 842357