Il existe quelques cas d'incompatibilité de source avec Scala 2.8.0. Par exemple, créer un Seq
anonyme une fois requis définir le résumé def elements : Iterator[A]
, qui est maintenant appelé def iterator : Iterator[A]
.Comment faire face aux incompatibilités de source Scala dans 2.8.0?
Pour moi, une solution «brute force» consiste à créer deux branches qui s'alignent sur les différentes versions majeures de scala.
Y a-t-il des techniques générales pour que ce code compile sous les deux systèmes?
// Note: this code resembles techniques used by xml.NodeSeq
trait FooSeq extends Seq[ Foo ] {
def internal : Seq[ Foo ]
def elements = internal.elements
def iterator = internal.iterator // Only compiles in 2.8
// need to remove for 2.7.X
}
Vous voulez maintenir une base de code compatible avec 2.7.x et 2.8? 2.7 n'est même plus maintenu; pourquoi ne pas faire le grand saut? (C'est ce que je suis en train de faire en ce moment.) –
Le véritable problème est celui de la conception de fonctionnalités 2.8.x par rapport à la prise en charge des versions 2.7.x. Un de mes projets de passe-temps commence à se faire remarquer, et je veux le réécrire, et bien, 2.8 est plutôt sympa ... Je ne fais surtout que rechercher des techniques que je n'ai pas envisagées et qui pourraient faciliter la tâche les choses d'abord en 2.8 et ensuite rendre les choses compatibles en 2.7.x, plutôt que l'inverse. –