4

抽象クラスを試していたときに、偶然この問題に遭遇しました。次のコード:

import shapeless._
class A 
  [tuple <: Product, hlist <: HList]
  (tuple: tuple)
  (implicit tupleGeneric: Generic.Aux[tuple, hlist]) 
{
  private val hlist = tupleGeneric.to(tuple)
  println(hlist)
}
new A((1, 'b')) {}

次のメッセージが表示されてコンパイルに失敗します。

could not find implicit value for parameter tupleGeneric: shapeless.Generic.Aux[(Int, Char),shapeless.::[Int,shapeless.::[Char,shapeless.HNil]]]
new A((1, 'b')) {}
    ^

ただし、単純に{}からその部分を削除するnew A((1, 'b')) {}と、問題なく暗黙的であることがわかります。

これは Scala のバグですか、それとも何か不足していますか?

4

1 に答える 1

3

認識されているバグであることが判明しました。

https://issues.scala-lang.org/browse/SI-8104

于 2013-12-27T23:22:18.790 に答える