1

例として shapeless ライブラリを使用します。

import shapeless.test.illTyped

関数を別の関数でラップしたいと仮定して、illTypeこれを行うために 2 つの異なる方法を試しました。

(値による)

  def shouldTypeError(v: String) = illTyped(v, ".*")

[ERROR] ... : exception during macro expansion: 
scala.MatchError: v (of class scala.reflect.internal.Trees$Ident)
    at shapeless.test.IllTypedMacros.applyImpl(typechecking.scala:43)

(名前で)

  def shouldTypeError(v: => String) = illTyped(v, ".*")

[ERROR ... ]: exception during macro expansion: 
scala.MatchError: v (of class scala.reflect.internal.Trees$Ident)
    at shapeless.test.IllTypedMacros.applyImpl(typechecking.scala:43)

そのため、どれも意図したとおりに機能しません。これは最新のscalaまたはdottyで可能ですか?

4

1 に答える 1