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

Tuple oddness

2 replies
mtm
Joined: 2009-01-27,
User offline. Last seen 3 years 32 weeks ago.

Getting some unexpected behavior from tuple element accessors (it
looks like implicits aren't working from Java array types to Scala
array types on tuple access)

scala> val foo = Array(1,2,3)
foo: Array[Int] = Array(1, 2, 3)

scala> val bar = (0, foo)
bar: (Int, Array[Int]) = (0,[I@268062)

scala> bar._2 == foo
res0: Boolean = true

scala> foo.drop(1)
res1: Array.Projection[Int] = Array(2, 3)

scala> bar._2.drop(1)
java.lang.ClassCastException: [I
at .(:7)
at .()
at RequestResult$.(:3)
at RequestResult$.()
at RequestResult$result()
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun
.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
at sun.reflect.DelegatingMethodAccessorImpl...
scala>

Am I missing something obvious?

-mike

Steve Bendiola
Joined: 2008-12-27,
User offline. Last seen 42 years 45 weeks ago.
Re: Tuple oddness

what scala version are you using, 2.7.2 and 2.7.3 work for me.

On Thu, Mar 12, 2009 at 3:08 PM, Mike T. Miller wrote:
> Getting some unexpected behavior from tuple element accessors (it looks like
> implicits aren't working from Java array types to Scala array types on tuple
> access)
>
>
> scala> val foo = Array(1,2,3)
> foo: Array[Int] = Array(1, 2, 3)
>
> scala> val bar = (0, foo)
> bar: (Int, Array[Int]) = (0,[I@268062)
>
> scala> bar._2 == foo
> res0: Boolean = true
>
> scala> foo.drop(1)
> res1: Array.Projection[Int] = Array(2, 3)
>
> scala> bar._2.drop(1)
> java.lang.ClassCastException: [I
>        at .(:7)
>        at .()
>        at RequestResult$.(:3)
>        at RequestResult$.()
>        at RequestResult$result()
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>        at sun.reflect.DelegatingMethodAccessorImpl...
> scala>
>
>
> Am I missing something obvious?
>
> -mike
>
>

mtm
Joined: 2009-01-27,
User offline. Last seen 3 years 32 weeks ago.
Re: Tuple oddness

Actually, it's 2.7.3.final

-mike

On Mar 12, 2009, at 5:50 PM, Steve Bendiola wrote:

> what scala version are you using, 2.7.2 and 2.7.3 work for me.
>
> On Thu, Mar 12, 2009 at 3:08 PM, Mike T. Miller
> wrote:
>> Getting some unexpected behavior from tuple element accessors (it
>> looks like
>> implicits aren't working from Java array types to Scala array types
>> on tuple
>> access)
>>
>>
>> scala> val foo = Array(1,2,3)
>> foo: Array[Int] = Array(1, 2, 3)
>>
>> scala> val bar = (0, foo)
>> bar: (Int, Array[Int]) = (0,[I@268062)
>>
>> scala> bar._2 == foo
>> res0: Boolean = true
>>
>> scala> foo.drop(1)
>> res1: Array.Projection[Int] = Array(2, 3)
>>
>> scala> bar._2.drop(1)
>> java.lang.ClassCastException: [I
>> at .(:7)
>> at .()
>> at RequestResult$.(:3)
>> at RequestResult$.()
>> at RequestResult$result()
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> sun
>> .reflect
>> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>> at sun.reflect.DelegatingMethodAccessorImpl...
>> scala>
>>
>>
>> Am I missing something obvious?
>>
>> -mike
>>
>>

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