このコードは、SBT 0.7.x シリーズ (この場合は 0.7.7) でのみコンパイルされますが、SBT 0.11.x シリーズ (この場合は 0.11.3) ではコンパイルされません。どちらの場合も、同じ Scala 2.9.x シリーズ (2.9.1) を使用する
SBT 0.11.3 はパラメータの型を推測できないようです。エクリプスもできません。私の推測では、コーディングに問題があると思います。それともSBT回帰ですか?
(現時点では、Scala プラグインの「不安定な」バージョンで Eclipse 4.2 を使用しています。ただし、Eclipse 3.7 とプラグインの「安定した」バージョンでも同じエラーが発生します。)
// either using the "override" reserved keyword or not, this code will compile with SBT 0.7.7 but not with 11.3
sealed trait FacetJoin[T1, T1S, T2S] {
def facetJoin (a: T1S, b: T1S
, fVals: (T1, T1) => T2S
, fFacets: (Formula, T1S, T1S, Formula, T1S, T1S) => T2S
, fBothL: (T1S, Formula, T1S, T1S) => T2S
, fBothR: (Formula, T1S, T1S, T1S) => T2S
, fOther: (T1S, T1S) => T2S): T2S
}
object FacetJoin {
implicit object BoolBoolFacetJoin
extends FacetJoin[Boolean, Formula, Formula] {
// Eclipse complaint for next line:
//// Multiple markers at this line
//// - only classes can have declared but undefined
//// members
//// - ':' expected but ',' found.
override def facetJoin (a, b, fVals, fFacets, fBothL, fBothR, fOther): Formula = {
...
// Eclipse complaint for next line:
//// Multiple markers at this line
//// - identifier expected but '}'
//// found.
//// - not found: type <error>
}
}
}
}