By writing class C3[C1], you say that C3 accepts a type parameter C1. Thus, inside the class definition, the class C3name C1refers to this parameter, not the class C1.
What you probably wanted to write was class C3 extends C2[C1](i.e. you pass the class C1 as a type parameter to C2).
source
share