3
マクロを使用してコンパイル時に現在の型に暗黙的に存在するかどうかをテストできますか?暗黙的に存在するかどうかのテスト
inferImplicitValue
を使用することが可能である必要があり、この
def packOne(tpe:c.universe.Type,....) = {
if(tpe =:= ByteTpe) makeast1
else if (tpe =:= LongTpe) makeast2
else if (tpe =:= c.typeOf[java.lang.String]) makeast3
....
else exists implicit convention for TPE {
q"""
// call some function with implicit PACK[T]
implicitly[Packer[$tpe]].pack(...)
"""
} else {
// Make default conversion
}
}
奇妙それがテストENVでは動作しません: このマクロは暗黙 HTTPSを見つけることができません:// github.com/martende/mondao/blob/master/src/main/scala/mondao/Macro.scala#L110テスト中 https://github.com/martende/mondao/blob/master/src/test/scala /MacroSpec.scala#L48 – Oleg
その間にソースを変更しましたか?私はあなたのレポをクローンしましたが、 'BsonNumber($ nameStr)'のエラーを受け取りました(文字列には適用されません)。 AFAICSでは、 'inferImplicitValue'の使用法はありません。 – devkat
それは最初のコミットだったそう申し訳ありません:、 – Oleg