2017-03-24 2 views
2

Das offizielle Scala Dotty Team zeigte, dass dieses Beispiel aus (https://d-d.me/talks/scalaworld2015/#/12)Scala Dotty Union Typ DaysOfTheWeek Beispiel

object DaysOfTheWeek { 
    object Mon 
    object Tue 
    object Wed 
    object Thu 
    object Fri 
    object Sat 
    object Sun 

    type Weekend = Sat.type | Sun.type 
    type Workweek = Mon.type | Tue.type | Wed.type | Thu.type | Fri.type 
    type All = Weekend | Workweek 
} 

Wenn ich die neueste Dotty verwende nächtliche bauen, die als diese Stelle ist „0.1.1-20170322- 5fd7a95-NÄCHTLICHE“, dass beispielsweise Ergebnisse in diesem Fehler:

Error:(13, 18) Singleton type DaysOfTheWeek.Sat.type is not allowed in a union type 
Error:(13, 29) Singleton type DaysOfTheWeek.Sun.type is not allowed in a union type 
Error:(14, 19) Singleton type DaysOfTheWeek.Mon.type is not allowed in a union type 
Error:(14, 30) Singleton type DaysOfTheWeek.Tue.type is not allowed in a union type 
Error:(14, 41) Singleton type DaysOfTheWeek.Wed.type is not allowed in a union type 
Error:(14, 52) Singleton type DaysOfTheWeek.Thu.type is not allowed in a union type 
Error:(14, 63) Singleton type DaysOfTheWeek.Fri.type is not allowed in a union type 

gibt es eine Möglichkeit, dieses offizielles Beispiel zum Laufen zu bringen?

+2

Das Gespräch eineinhalb Jahre alt ist und Dotty ist immer noch ein sich schnell bewegendes Ziel unter starker Entwicklung. Vielleicht haben Sie mehr Glück, wenn Sie einen * alten * Schnappschuss anstelle eines * neuen * Schnappschusses verwenden. Oder es könnte Teil einer Idee gewesen sein, die aufgegeben wurde und überhaupt nicht umgesetzt wurde. –

+2

Diese Vortragsfolien sind immer noch prominent auf der aktuellen Homepage des Dotty-Projekts zu sehen: dotty.epfl.ch. Außerdem werden Union-Typen als implementiert aufgeführt, und sie funktionieren mit anderen Beispielen. – clay

+0

Soweit ich weiß Singleton-Typen sind (derzeit) nicht in Union-Typen erlaubt, siehe https://github.com/lampepfl/dotty/issues/1551 – lutzh

Antwort

0

Die am weitesten ich mit Aufzählungen und aktualisiert dotty bekam ist

enum class DaysOfTheWeek 
object DaysOfTheWeek { 
case Mon 
case Tue 
case Wed 
case Thu 
case Fri 
case Sat 
case Sun; 

    type Weekend = Sat.type | Sun.type; 
    type Workweek = Mon.type | Tue.type | Wed.type | Thu.type | Fri.type; 
    type All = Weekend.type | Workweek.type; 

} 

, die immer noch den gleichen Fehler ergibt aber wahrscheinlich hier angesprochen werden: https://github.com/lampepfl/dotty/issues/1551