問題タブ [scala-compiler]

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 投票する
4 に答える
13021 参照

scala - コンパイラ ミラー内のオブジェクト scala が見つかりません - プログラムで Scala コンパイラを実行しています

Java 7 を使用した単純な SBT プロジェクト (詳細は以下) で実行sbt runし、コマンドラインで呼び出します (IntelliJ などは使用しません)。

ソース

エラー

build.sbt

ジャワ

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

java - ScalaSignature とは?

Scala ファイルを Java コードに逆コンパイルするとき、s で注釈されたクラスに出くわすことがよくありますScalaSignature。これらには、多少エンコードされた文字列である 1 つの注釈値しかないようです。なぜ Scala Compilerは、ファイル内でカスタムAttributesを使用する代わりに、このような奇妙な構造を作成するのでしょうか?class

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

scala - scala nsc での main メソッド呼び出し

私はnsc(新しいscalaコンパイラ)のコードを調べようとしていました. について少し混乱していMain.scalaます。次のように実装されます。

私の最初の質問は、Mainコンパイラ プロセスによってどのように呼び出されるのかということです。次の行に沿って何かを呼び出すと:

newCompilerandが呼び出されている行のどこかdoCompileで、これがどのように呼び出され、コンパイラがどのように初期化されているかを追跡するのを手伝ってくれる人はいますか?

どんなポインタでも大歓迎です。

ありがとう

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

scala - obtaining the source of a case class's automatically generated methods

How can one obtain the code of all automatically generated methods of a case class, to cleanly preserve any of them when refactoring to a regular (non-case) class? is there some compilation flag that reveals the case class's auto-generated methods, or some other way, that ultimately reduce this to a cut & paste?

I have been under the impression that there are compilation flags to reveal automatically expanded definitions....

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

scala - コンパイラ ミラー内のオブジェクト scala が見つかりません - Scala コンパイラをプログラムで実行 [sbt なし - IDE なし]

[編集: コメントで要求された精度を追加]

コンパイラをプログラムで実行しようとすると、「Missing dependency 'object scala in compiler mirror'」というエラーが表示されます。私はこの投稿object scala in compiler mirror not found を見つけた - プログラムで Scala コンパイラを実行している(ただし、外部からではなく sbt からプログラムを起動した場合の問題の解決方法のみを説明している)。

だから私はここに例をコピー/貼り付けます:

SBT から起動したときに動作させるソリューション:

クラスパスとして sbt の fullClassPath 値を渡すことで、両方のバージョンを端末から直接起動しようとしています。

どこで java -version を与える

次のエラーが表示されるたびに:

だから私の質問は2つあります:

  • 前述の投稿で示した「魔法のトリック」がどのように機能するかを誰か説明してもらえますか? (embeddedDefaults メソッドの解説がわかりません)

  • 誰かが端末から遊び場を実行するための同様の手品を与えることができますか?