The following code snippet causes a NullPointerException.
object A extends lisa.Main{
val f = x === x
val x = variable
}
object C extends lisa.Main {
A.x
}
This is due to the fact that x is declared after f. In more substantial pieces of code, this is not always obvious to spot, especially when objects start to be nested and variables imported from other files. In those cases, we may want to hint the user that the variable has not been declared yet.