In my Test.scala, I defined a Trait and Object for incrementing a number first. Note that I'm using part of the RNG code based on the "Random Number Generator" lesson in Functional Programming in Scala.
trait NumberInc {
def currentInt: Int
def nextInt: (Int, NumberInc)
}
object NumberInc {
def simple(seed: Int): NumberInc = new NumberInc {
def currentInt: Int = seed
def nextInt: (Int, NumberInc) = (seed + 1, simple(seed + 1))
}
}
Then, within my "Test" object's foo() method, I perform the following logic:
def foo() {
var numberInc = NumberInc.simple(0)
def bar() = {
baz(numberInc.currentInt)
var (_, numberInc) = numberInc.nextInt /* Error Line */
}
}
But I'm getting this error on the above error line.
[error] forward reference extends over definition of variable numberInc
I found this answer to be helpful, but I'm not sure how it applies to my above code.