marcap@concour.CS.Concordia.CA (Marc Pawlowsky) (10/03/89)
I am trying to define an object with a constrained generic type. And the constrained type has a gneric type in its definition. For example: class A[U] export contents feature contents: U; Create(x:U) is do contents := x; end; -- Create end -- A class B[R->A] feature b_contents:R; Create(x:R) is do b_contents := x; end; -- Create rout1 is local dummy:R; do dummy := b_contents.contents; end; -- rout1 end -- B Trying to compile this (adam% is my prompt) gives: adam% adam% ec b Pass 1 on class b Pass 2 on class b Interface may have changed. Pass 3 on class b "b", 15: Incorrect number of actual generic parameters for class a *** ec: pass3 failed Stop. adam% Please note that the error is at the line 'dummy := ...'. OK This makes sense, so lets change the contents of class B. Unfortunately the obvious solution is: class B[R->A[S]] Trying to compile gives: adam% ec b Pass 1 on class b "b", 1: Cannot find supplier class: s *** ec: pass1 failed Stop. adam% Which is what it is supposed to do according to the Eiffel syntax. At this point I'm stumped. Does anybody know what to do? I'm working in Eiffel 2.1 on a Sun 3/50 under Unix 3.50 (Export) Marc Pawlowsky Graduate Student Concordia University