summaryrefslogtreecommitdiff
path: root/test/files
diff options
context:
space:
mode:
authorEugene Burmako <xeno.by@gmail.com>2014-01-20 22:20:06 -0800
committerEugene Burmako <xeno.by@gmail.com>2014-01-20 22:20:06 -0800
commit434c21c5f101ecc7435d9577a8ee8bd576f571c1 (patch)
tree57e9a08d982c465f6072cfd2141fc8185dd47a04 /test/files
parent8f6f4032b5c026fd9301cebe28dde5bb7c8e264c (diff)
parent3f3014cf0edd8ea182d234d5987838223231d9c9 (diff)
downloadscala-434c21c5f101ecc7435d9577a8ee8bd576f571c1.tar.gz
scala-434c21c5f101ecc7435d9577a8ee8bd576f571c1.tar.bz2
scala-434c21c5f101ecc7435d9577a8ee8bd576f571c1.zip
Merge pull request #3385 from xeno-by/ticket/8158
fixes some typos and types
Diffstat (limited to 'test/files')
-rw-r--r--test/files/neg/t8158.check4
-rw-r--r--test/files/neg/t8158/Macros_1.scala34
-rw-r--r--test/files/neg/t8158/Test_2.scala14
-rw-r--r--test/files/run/t5256h.check2
4 files changed, 53 insertions, 1 deletions
diff --git a/test/files/neg/t8158.check b/test/files/neg/t8158.check
new file mode 100644
index 0000000000..fa6b744ba5
--- /dev/null
+++ b/test/files/neg/t8158.check
@@ -0,0 +1,4 @@
+Test_2.scala:10: error: not enough patterns for <$anon: AnyRef> offering AnyRef{def isEmpty: Boolean; def get: $anon; def unapply(x: String): $anon}: expected 1, found 0
+ case X() =>
+ ^
+one error found
diff --git a/test/files/neg/t8158/Macros_1.scala b/test/files/neg/t8158/Macros_1.scala
new file mode 100644
index 0000000000..b84e3ed8d3
--- /dev/null
+++ b/test/files/neg/t8158/Macros_1.scala
@@ -0,0 +1,34 @@
+import scala.language.experimental.macros
+import scala.reflect.macros.whitebox.Context
+
+object Max {
+ def impl(c: Context)(any: c.Expr[Any]): c.Expr[Any] = {
+ import c.universe._
+ def fail(msg: String) = c.abort(c.enclosingPosition, msg)
+ val t = c.macroApplication match {
+ case q"$_.unapply($unargs)" =>
+ /* hangs
+ */
+ q"""
+ new {
+ def isEmpty = false
+ def get = this
+ def unapply(x: String) = this
+ }.unapply($unargs)
+ """
+ /*
+ if get returns Unit or Boolean:
+ wrong number of patterns for <$anon: AnyRef> offering Unit: expected 1, found 0
+ */
+ /* straightforward
+ q"""
+ new {
+ def unapply(x: String) = true
+ }.unapply($unargs)
+ """
+ */
+ case _ => fail("bad appl")
+ }
+ c.Expr[Any](t)
+ }
+} \ No newline at end of file
diff --git a/test/files/neg/t8158/Test_2.scala b/test/files/neg/t8158/Test_2.scala
new file mode 100644
index 0000000000..f5ac6616bb
--- /dev/null
+++ b/test/files/neg/t8158/Test_2.scala
@@ -0,0 +1,14 @@
+import scala.language.experimental.macros
+
+object X {
+ def unapply(any: Any): Any = macro Max.impl
+}
+
+class BugTest {
+ def bug(): Unit = {
+ "any" match {
+ case X() =>
+ case _ => ???
+ }
+ }
+} \ No newline at end of file
diff --git a/test/files/run/t5256h.check b/test/files/run/t5256h.check
index 1a4a92a684..dc3e919897 100644
--- a/test/files/run/t5256h.check
+++ b/test/files/run/t5256h.check
@@ -3,5 +3,5 @@ Test.$anon$1
java.lang.Object {
final private val x: Int
def x(): Int
- def <init>(): java.lang.Object{def x(): Int}
+ def <init>(): $anon$1
}