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

unreachable code? and REPL crash

1 reply
Ittay Dror 2
Joined: 2010-05-05,
User offline. Last seen 42 years 45 weeks ago.

saving the code below and loading it in the REPL:

scala> :load c:\temp\loopwhile.scala
Loading c:\temp\loopwhile.scala...
doBeforeBeginOnly: Unit
:18: error: unreachable code
case 'end => ended = true

loading it again:

scala> :load c:\temp\loopwhile.scala
Loading c:\temp\loopwhile.scala...
doBeforeBeginOnly: Unit
Exception in thread "main" java.lang.NullPointerException
at scala.tools.nsc.Global$Run.compileLate(Global.scala:826)
at scala.tools.nsc.symtab.SymbolLoaders$SourcefileLoader.doComplete(SymbolLoaders.scala:265)
at scala.tools.nsc.symtab.SymbolLoaders$SymbolLoader.complete(SymbolLoaders.scala:61)
at scala.tools.nsc.symtab.SymbolLoaders$SymbolLoader.complete(SymbolLoaders.scala:35)
at scala.tools.nsc.symtab.Symbols$Symbol.info(Symbols.scala:743)
at scala.tools.nsc.transform.SpecializeTypes$$anon$5.apply(SpecializeTypes.scala:196)
at scala.tools.nsc.transform.SpecializeTypes$$anon$5.apply(SpecializeTypes.scala:188)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
at scala.collection.immutable.List.foreach(List.scala:45)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
at scala.collection.immutable.List.map(List.scala:45)

and the REPL crashes

why isn't the variable reachable?

regards,

Ittay

code:

import scala.actors.Actor._

def doBeforeBeginOnly = println("before")

val a = actor {
loop {
doBeforeBeginOnly
react {
case 'begin => println("begin")
var ended = false
loopWhile(!ended) {
react {
case msg => println(msg)
case 'end => ended = true
}
}
}
}
}

Ittay Dror 2
Joined: 2010-05-05,
User offline. Last seen 42 years 45 weeks ago.
Re: unreachable code? and REPL crash

please ignore the dumb question about unreachable code. still, the REPL crashes...

Ittay Dror wrote:
>
>
> saving the code below and loading it in the REPL:
>
> scala> :load c:\temp\loopwhile.scala
> Loading c:\temp\loopwhile.scala...
> doBeforeBeginOnly: Unit
> :18: error: unreachable code
> case 'end => ended = true
>
>
> loading it again:
>
> scala> :load c:\temp\loopwhile.scala
> Loading c:\temp\loopwhile.scala...
> doBeforeBeginOnly: Unit
> Exception in thread "main" java.lang.NullPointerException
> at scala.tools.nsc.Global$Run.compileLate(Global.scala:826)
> at scala.tools.nsc.symtab.SymbolLoaders$SourcefileLoader.doComplete(SymbolLoaders.scala:265)
> at scala.tools.nsc.symtab.SymbolLoaders$SymbolLoader.complete(SymbolLoaders.scala:61)
> at scala.tools.nsc.symtab.SymbolLoaders$SymbolLoader.complete(SymbolLoaders.scala:35)
> at scala.tools.nsc.symtab.Symbols$Symbol.info(Symbols.scala:743)
> at scala.tools.nsc.transform.SpecializeTypes$$anon$5.apply(SpecializeTypes.scala:196)
> at scala.tools.nsc.transform.SpecializeTypes$$anon$5.apply(SpecializeTypes.scala:188)
> at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
> at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
> at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
> at scala.collection.immutable.List.foreach(List.scala:45)
> at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
> at scala.collection.immutable.List.map(List.scala:45)
>
>
> and the REPL crashes
>
>
> why isn't the variable reachable?
>
>
> regards,
>
> Ittay
>
>
> code:
>
> import scala.actors.Actor._
>
> def doBeforeBeginOnly = println("before")
>
> val a = actor {
> loop {
> doBeforeBeginOnly
> react {
> case 'begin => println("begin")
> var ended = false
> loopWhile(!ended) {
> react {
> case msg => println(msg)
> case 'end => ended = true
> }
> }
> }
> }
> }
>
>
>
>

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