object Test {
  def len(x: Array[String]): Unit = x.length
  def load(x: Array[String]): Unit = x(0)

  def check(x: => Any) = try { x; sys.error("failed to throw NPE!") } catch { case _: NullPointerException => }

  def main(args: Array[String]) {
    check(len(null)) // bug: did not NPE
    check(load(null))
  }
}

object Test {
  def len(x: Array[String]): Unit = x.length

  def check(x: => Any) = try { x; sys.error("failed to throw NPE!") } catch { case _: NullPointerException => }

  def main(args: Array[String]) {
    check(len(null))
  }
}

--- 
+++ 
@@ -1,9 +1,11 @@
 object Test {
   def len(x: Array[String]): Unit = x.length
+  def load(x: Array[String]): Unit = x(0)
 
   def check(x: => Any) = try { x; sys.error("failed to throw NPE!") } catch { case _: NullPointerException => }
 
   def main(args: Array[String]) {
-    check(len(null))
+    check(len(null)) // bug: did not NPE
+    check(load(null))
   }
 }
Add a test for array load
