marcap@concour.CS.Concordia.CA (Marc Pawlowsky) (10/08/89)
I believe I have found a bug in the inheritance system of Eiffel 2.1. I am working on s Sun 3/50 under Unix 3.5 (export). The bug(?) is that in the code segment below, the features in C use the features declared in D and not E, even though type P is of class E (which inherits from class D). class C[P->D] export out inherit STD_FILES feature variable: P; out is do variable.out(output); end; -- out Create is do variable.Create; end; end -- C class D export out inherit STD_FILES feature Create is do output.putstring("Creating class D\n"); end; out(f:FILE) is do f.putstring("out class D\n"); end; -- out end -- class D class E export out inherit D redefine out feature Create is do output.putstring("Creating class E\n"); end; out(f:FILE) is do f.putstring("out class E\n"); end; -- out end -- class E class F feature v: C[E]; Create is do v.Create; v.out; end; end -- class F The root is class F and the output is Creating class D` Out class D