diff options
author | Josh Suereth <Joshua.Suereth@gmail.com> | 2012-05-17 08:29:21 -0700 |
---|---|---|
committer | Josh Suereth <Joshua.Suereth@gmail.com> | 2012-05-17 08:29:21 -0700 |
commit | 8ce86909bf7d7b7ff5c1f65b35288c90c1f8548a (patch) | |
tree | 2e08bddc9342660758df24b36078f4692235db9f | |
parent | ce896d6531122410659492c07926a0a293b94afa (diff) | |
parent | c09bd7cbe853062853fab0692da1f54135fdbd38 (diff) | |
download | scala-8ce86909bf7d7b7ff5c1f65b35288c90c1f8548a.tar.gz scala-8ce86909bf7d7b7ff5c1f65b35288c90c1f8548a.tar.bz2 scala-8ce86909bf7d7b7ff5c1f65b35288c90c1f8548a.zip |
Merge pull request #562 from retronym/ticket/5803
A band-aid solution for SI-5803.
-rw-r--r-- | src/compiler/scala/tools/nsc/ast/Trees.scala | 3 | ||||
-rw-r--r-- | test/files/neg/t5803.check | 4 | ||||
-rw-r--r-- | test/files/neg/t5803.scala | 4 |
3 files changed, 10 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/Trees.scala b/src/compiler/scala/tools/nsc/ast/Trees.scala index 4c509778e9..1b8fe9a91a 100644 --- a/src/compiler/scala/tools/nsc/ast/Trees.scala +++ b/src/compiler/scala/tools/nsc/ast/Trees.scala @@ -362,7 +362,8 @@ trait Trees extends reflect.internal.Trees { self: Global => } val x1 = new Transformer().transform(x) - assert(x.getClass isInstance x1, x1.getClass) + // The loose invariant is a temporary workaround for SI-5803 + assert(x.getClass.isInstance(x1) || (x.isInstanceOf[ApplyConstructor] && x1.isInstanceOf[Apply]), (x.getClass, x1.getClass)) x1.asInstanceOf[T] } } diff --git a/test/files/neg/t5803.check b/test/files/neg/t5803.check new file mode 100644 index 0000000000..6a2de2e1df --- /dev/null +++ b/test/files/neg/t5803.check @@ -0,0 +1,4 @@ +t5803.scala:3: error: could not find implicit value for parameter ev: Nothing + new Foo(): String + ^ +one error found diff --git a/test/files/neg/t5803.scala b/test/files/neg/t5803.scala new file mode 100644 index 0000000000..f818272f86 --- /dev/null +++ b/test/files/neg/t5803.scala @@ -0,0 +1,4 @@ +object Test { + class Foo()(implicit ev: Nothing) + new Foo(): String +} |