This page is no longer maintained — Please continue to the home page at www.scala-lang.org

Serious problem at Enumeration.values

1 reply
Jan Kotek
Joined: 2009-07-26,
User offline. Last seen 42 years 45 weeks ago.

Hi,

it seems that 'Enumeration.values' in 2.8.1 contains one extra value 'Value'.
It does not show on first invocation, but on second and latter

Here is test case:

object EnumTest {
def main(args:Array[String]){

object WeekDay extends Enumeration {
type WeekDay = Value
val Mon, Tue, Wed, Thu, Fri, Sat, Sun = Value
}

WeekDay.values.foreach(s=>print(s+", "))
// >> Mon, Tue, Wed, Thu, Fri, Sat, Sun,
println("")
WeekDay.values.foreach(s=>print(s+", "))
// >> Mon, Tue, Wed, Thu, Fri, Sat, Sun, Value,
println("")
println("Enum size: "+WeekDay.values.size)
// >> Enum size: 8
//assertion fails
assert(WeekDay.values.size == 7)

}
}

Should I report this?

Regards,
Jan Kotek

Hubert Plociniczak
Joined: 2009-09-12,
User offline. Last seen 42 years 45 weeks ago.
Re: Serious problem at Enumeration.values

Searching for "enumeration values" in trac gives you among top results
#3687.

Thanks,
hubert

On 12/09/2010 11:27 PM, Jan Kotek wrote:
> Hi,
>
> it seems that 'Enumeration.values' in 2.8.1 contains one extra value 'Value'.
> It does not show on first invocation, but on second and latter
>
> Here is test case:
>
> object EnumTest {
> def main(args:Array[String]){
>
> object WeekDay extends Enumeration {
> type WeekDay = Value
> val Mon, Tue, Wed, Thu, Fri, Sat, Sun = Value
> }
>
> WeekDay.values.foreach(s=>print(s+", "))
> //>> Mon, Tue, Wed, Thu, Fri, Sat, Sun,
> println("")
> WeekDay.values.foreach(s=>print(s+", "))
> //>> Mon, Tue, Wed, Thu, Fri, Sat, Sun, Value,
> println("")
> println("Enum size: "+WeekDay.values.size)
> //>> Enum size: 8
> //assertion fails
> assert(WeekDay.values.size == 7)
>
>
> }
> }
>
>
> Should I report this?
>
> Regards,
> Jan Kotek

Copyright © 2012 École Polytechnique Fédérale de Lausanne (EPFL), Lausanne, Switzerland