- About Scala
- Documentation
- Code Examples
- Software
- Scala Developers
unreachable code? and REPL crash
Wed, 2010-06-23, 12:31
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
}
}
}
}
}
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
> }
> }
> }
> }
> }
>
>
>
>