6
ここでは、私が遭遇したものの単純化しています。これは、コンパイルされます。宣言と宣言の順序
trait A { implicit val x = 1 }
trait B extends A { val y = implicitly[Int] }
これはいませんが(暗黙の値を見つけることができませんでした):
trait B extends A { val y = implicitly[Int] }
trait A { implicit val x = 1 }
私は自己のタイプを指定することによって、私の意思を明確にしてみました:trait A { this: B => ... }
が、無駄に。
コードの配置方法を気にせずにこの種の依存関係を処理するにはどうすればよいですか?
暗黙オブジェクトはどうですか?私は、暗黙のうちに解決の仕方について私にスペックの部分を指摘できますか? '形質X;形質BはAを拡張する{val y =暗黙的に[X]};特性A {暗黙のオブジェクトxはXを伸ばす} ' – elbowich
遅れて申し訳ありません。スペックの大雑把な外観の後、私はルールを見つけることができませんでした。しかし、[このバグ報告](https://issues.scala-lang.org/browse/SI-801)で述べられているように、実装のように見えますが、まだ仕様に達していません。暗黙的なオブジェクトではうまくいかない理由は分かりません。 –