You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Welcome to Scala version 2.9.1.final (JavaHotSpot(TM) ClientVM, Java1.6.0_26).
Type in expressions to have them evaluated.
Type:help for more information.
scala>importcollection.mutable.{Stack,StackProxy}
importcollection.mutable.{Stack, StackProxy}
scala>classAextendsStackProxy[Int] {defself=Stack[Int]()}
defined classA
scala>vala=newA
a:A=Stack()
scala> a push 3
res0: a.type=Stack()
scala> a push 4
res1: a.type=Stack()
scala> a push 5
res2: a.type=Stack()
scala> a
res3:A=Stack()
scala> a pop
java.util.NoSuchElementException: head of empty list
at scala.collection.immutable.Nil$.head(List.scala:371)
at scala.collection.immutable.Nil$.head(List.scala:368)
at scala.collection.mutable.Stack.pop(Stack.scala:146)
at scala.collection.mutable.StackProxy$class.pop(StackProxy.scala:80)
at A.pop(<console>:8)
at .<init>(<console>:11)
at .<clinit>(<console>)
at .<init>(<console>:11)
at .<clinit>(<console>)
at $print(<console>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.call(IMain.scala:704)
at scala.tools.nsc.interpreter.IMain$Request$$anonfun$14.apply(IMain.scala:920)
at scala.tools.nsc.interpreter.Line$$anonfun$1.apply$mcV$sp(Line.scala:43)
at scala.tools.nsc.io.package$$anon$2.run(package.scala:25)
at java.lang.Thread.run(Thread.java:662)
scala>
The text was updated successfully, but these errors were encountered:
Felix Dietze (man) said:
I had a look in the source, and it seems like the push-method with only one argument is not overwritten. This could maybe fix the issue:
@axel22 said:
That's not the only issue.
You've defined the self method to instantiate a new StackInt each time it is called. You should either have a val or def should return a stable reference.
The text was updated successfully, but these errors were encountered: