diff options
author | Grzegorz Kossakowski <grzegorz.kossakowski@gmail.com> | 2015-02-05 10:27:54 +0100 |
---|---|---|
committer | Grzegorz Kossakowski <grzegorz.kossakowski@gmail.com> | 2015-02-05 10:27:54 +0100 |
commit | e3a171d76c9d596a8804897c1c6f27a069a0a18d (patch) | |
tree | f2aea118b4f2eaade7a79c0cd34613c942800822 | |
parent | e8228865bf269179de3132a9b570d308e1875dcd (diff) | |
parent | 6b26f3b6a187c4c8f606b8f7e4b0ae84dc9cdebe (diff) | |
download | scala-e3a171d76c9d596a8804897c1c6f27a069a0a18d.tar.gz scala-e3a171d76c9d596a8804897c1c6f27a069a0a18d.tar.bz2 scala-e3a171d76c9d596a8804897c1c6f27a069a0a18d.zip |
Merge pull request #4295 from retronym/ticket/9135
SI-9135 Fix NPE, a regression in the pattern matcher
-rw-r--r-- | src/reflect/scala/reflect/internal/Trees.scala | 2 | ||||
-rw-r--r-- | test/files/pos/t9135.scala | 16 |
2 files changed, 17 insertions, 1 deletions
diff --git a/src/reflect/scala/reflect/internal/Trees.scala b/src/reflect/scala/reflect/internal/Trees.scala index ccf907e05d..fd918b8595 100644 --- a/src/reflect/scala/reflect/internal/Trees.scala +++ b/src/reflect/scala/reflect/internal/Trees.scala @@ -1622,7 +1622,7 @@ trait Trees extends api.Trees { } private def invalidateSingleTypeCaches(tree: Tree): Unit = { if (mutatedSymbols.nonEmpty) - for (t <- tree) + for (t <- tree if t.tpe != null) for (tp <- t.tpe) { tp match { case s: SingleType if mutatedSymbols contains s.sym => diff --git a/test/files/pos/t9135.scala b/test/files/pos/t9135.scala new file mode 100644 index 0000000000..1e2c97baf9 --- /dev/null +++ b/test/files/pos/t9135.scala @@ -0,0 +1,16 @@ + +class Free[A] { + + + this match { + case a @ Gosub() => gosub(a.a)(x => gosub(???)(???)) + } + def gosub[A, B](a0: Free[A])(f0: A => Any): Free[B] = ??? +} + + + + case class Gosub[B]() extends Free[B] { + type C + def a: Free[C] = ??? + } |