Using Scala version 2.11.12.
I can't seem to make the implicit config
supplied by the mixin Foundation
trait visible to the Path
class' constructor.
case class Config() {
val content = "hello"
}
trait Foundation {
implicit val config: Config = Config()
}
trait PathBase {
def somePath: String = "/user/xxx"
}
class Path(implicit val config: Config) extends PathBase {
def someOtherPath: String = "/user/yyy"
}
trait NavigatorBase {
protected implicit val hdfs: PathBase
}
trait Navigator extends NavigatorBase with Foundation {
// private implicit val config1: Config = config
protected implicit val hdfs = new Path
}
The above code raises the following error:
:39: error: could not find implicit value for parameter config: Config protected implicit val hdfs = new Path
However, if I define a new implicit val using the config
supplied by Foundation
before calling Path
's constructor (see the commented line in the code), the code works. If I write trait Navigator extends Foundation
without mixing in NavigatorBase
, the code also works.
Is there a way to make the implicit config
visible to Path
's constructor without having to define a new implicit variable or remove the extension of NavigatorBase
?