問題タブ [scala-quasiquotes]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
129 参照

scala - AST が表す値の型をどのように取得しますか?

私は次のように書こうとしています:

valueASTで表される値の型をキャプチャして、tpeに割り当てる必要がありUます。どうやってこれを行うのですか?

編集:型注釈を付けvalueて準引用符で照合することは、ここではオプションではありません。ユースケースは、 のような複雑な型を持つ Shapeless の拡張可能なレコードです。また、AST はプログラムによって生成され、リテラルではありません。String with labelled.KeyTag[1, String] :: Long with labelled.KeyTag[three, Long] :: HNilval ls = (1 ->> "two") :: ("three" ->> 4L) :: HNilvalue

0 投票する
1 に答える
106 参照

scala - 依存型が Scala マクロによって生成されると「機能しない」ように見える

勝手なタイトル失礼します。このようなものに遭遇したことがないので、質問を簡潔に表現する方法が完全にはわかりません。


背景情報:

私は次の特性を持っています。型はShapeless 拡張可能なレコードU型を保持するためのものです:

ブラックボックス マクロを使用して (この質問の範囲外の理由で)、特性の新しいインスタンスを作成しています。


問題:

問題は、このマクロを使用して の新しいインスタンスを作成するとFlattened、 のタイプがfields拡張可能なレコードではなくなることです。


サイドノート:

奇妙なことに、マクロが行うことを手動で行うと、次のように機能します。

この不一致があるのはなぜですか? また、マクロ バージョンを手動バージョンと同じように動作させるにはどうすればよいですか?

0 投票する
0 に答える
49 参照

scala - マクロで既存のメソッドを使用する

いくつかのメソッドを持ついくつかのクラスがあるとします

someMethod を再利用して ID を上書きする必要があります。理由はわかりませんが、Stackoverflow がスローされます。また、結果を返さずに Clz の params/methods を使用して何かを行う必要があります。

私が試したこと:

Clz で id メソッドを上書きするにはどうすればよいですか?

なぜStackOverflowをスローするのですか??