summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosh Suereth <Joshua.Suereth@gmail.com>2012-05-17 08:29:21 -0700
committerJosh Suereth <Joshua.Suereth@gmail.com>2012-05-17 08:29:21 -0700
commit8ce86909bf7d7b7ff5c1f65b35288c90c1f8548a (patch)
tree2e08bddc9342660758df24b36078f4692235db9f
parentce896d6531122410659492c07926a0a293b94afa (diff)
parentc09bd7cbe853062853fab0692da1f54135fdbd38 (diff)
downloadscala-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.scala3
-rw-r--r--test/files/neg/t5803.check4
-rw-r--r--test/files/neg/t5803.scala4
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
+}