2016-09-29 5 views
0

私はa libraryマクロとapplyDynamicを大量に使用しています。 The compiler bugは、applyDynamicでvarargsを使用することを妨げていました。私は多くの苦痛を抱かせていましたが、マクロを呼び出すapplyDynamicに動的な引数のシーケンスを渡すための回避策を探しています。(マクロベースの?)「applyDynamicは、可変パラメータを渡すことをサポートしていません。」

applyDynamicwith little successを呼び出す前にシーケンスまたはスプラットを展開するマクロを書き込もうとしましたが、私はScalaマクロにはあまり慣れていないので、何か間違っている可能性があります。

答えて

1

このライン上ScalaJSを使用している間、私はこの問題をヒット:

literal.applyDynamic("apply")(seq: _*) 

説明::リテラル(より正確には:scala.scalajs.js.Dynamic

literal(seq: _*) 

この問題を回避するには、単にこれでした。リテラル)は、scala.Dynamicを拡張したオブジェクトであり、コールリテラル(...)はliteral.apply(...)に劣っています。それ自体は、バグがなければliteral.applyDynamic "適用")(...)。まあ、それはちょっと醜いですが、誰もいつも砂糖を取り除くことができます。

関連する問題