Can’t the compiler complete the missing “inheritance pieces” ?
trait Something1
trait Something2
trait A(implicit st1 : Something1)
trait B(implicit st2 : Something2)
trait AB extends A with B
implicit val myST1 = new Something1{}
implicit val myST2 = new Something2{}
class ABC extends AB //Compiler will automagically change the last line to
class ABC extends A with B with AB //Compile rewrite
Alternatively, it may be possible to do via plugin, scalafix, or IDE generation, but IF it is possible, then why shouldn’t the compiler just do it by itself?
Is there something I don’t see where? What kind of language rules could this break?