問題タブ [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 投票する
1 に答える
1429 参照

intellij-idea - IntelliJ IDEA 2017.3.4 & Scala コンパイル サーバー: IDE が独自のローカル サーバーに接続できない

IntelliJ IDEA 2017.3.4ScalaIDEとして使用しています。

Build project automatically「 」オプションを有効にしてJava 8 JDK、デフォルトのプロジェクト SDK として設定しました。 ここに画像の説明を入力

以下、Scala compiler server構成 ここに画像の説明を入力

Scala compiler server実行されており、ポート43558でリッスンしています。このポートを変更することはできません。IntelliJ IDEA によってランダムに影響を受けると思います。

ここに画像の説明を入力

Scala ソース コードを変更するとき、IntelliJ IDEA はScala Compiler Server、わずかな変更で多くのクラスを再コンパイルすることを避けるために を使用しません。このため、コンパイル時間が非常に長くなります...

私は以下のエラーを受け取りました: ここに画像の説明を入力

注: Linux ホスト 64 ビット (Arch Linux) で実行しています。

を使用するために私が何をする必要があるかについて何か考えがありますScala compiler serverか?

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

scala - 境界が抽象型メンバーの場合、型の上限を持つ上位の種類の型コンストラクターが機能しない

のサブタイプである引数のみを受け入れる、上限Rとより高い種類の型コンストラクターによってパラメーター化される特性を定義したいと考えています。. _ _ _ _F[_]RapplyF[A]UnitA <: R

このコードは完全に正常に動作します:

(以下のネーミングについてのコメントを参照してください)

Rここで、あるモジュールの型メンバーとして宣言してを抽象化し、Fnctr[A <: R]このモジュール内で次のように定義するとします。

すべてが壊れ、解釈方法がわからない 2 つのエラー メッセージが表示されます。

コンパイラは、 3 つすべての内部ModuleImplが同じ型であることを認識すると予想していました。CoCone[Domain, Fnctr]Domain = AbstractDomain = R

ここで明らかな何かが欠けていますか、scalacそれとも 2.12.4 の制限ですか? それが制限である場合、誰かがそれをどこかで報告したことがありますか?

編集似たようなものが見つかりました: issue #10186。「同じ」ですか?同じではない"?バグの場合、別のテストケースとして提案する必要がありますか? それが完全に私のせいではないこと、および/またはそれが実際にリンクされた問題に密接に関連していることを誰かが確認できれば、それは問題の許容可能な解決策になります.

Edit2 : @Evgeny が指摘したように、別のコンパイラ フェーズ (refchecksではなくtyper) で失敗するため、正確に問題 10186 にすることはできません。


名前についての注意: ここでは、自然な変換と考えることができるCoCone一般的に定義されたものに類推して、特性と呼んでいます。~>ある意味では、は のCoCone[Dom, Fctr]ようなものですFctr ~> Const_Unitが、 のドメインは のFサブタイプに制限されていますDom。実際には、は特定のサブクラスをネットワーク経由で送信できる形式のCoCone[R, F]ものですが、それは重要ではないため、名前を抽象化しました。これはかなり一般的な数学的構造であり、あまりにも不自然ではありません。それをコンパイルできれば素晴らしいでしょう。FR