summaryrefslogtreecommitdiff
path: root/test/pending
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2013-05-27 13:36:48 +0200
committerJason Zaugg <jzaugg@gmail.com>2013-05-29 19:57:02 +0200
commit851e39991e7a929e1d83d5e35a024d5b9bd0b75f (patch)
treed31ab190abb8db0d3c21bd017098bfb6aebc62f6 /test/pending
parent0da2b2c96b6dc91d95a54725bc04381fc0eda43b (diff)
downloadscala-851e39991e7a929e1d83d5e35a024d5b9bd0b75f.tar.gz
scala-851e39991e7a929e1d83d5e35a024d5b9bd0b75f.tar.bz2
scala-851e39991e7a929e1d83d5e35a024d5b9bd0b75f.zip
SI-7516 Revert "SI-7234 Make named args play nice w. depmet types"
This reverts commit 83c9c764b528a7a1c1d39c480d22c8e3a71d5a58. The tests are shunted to 'pending'. Why revert this seemingly innocous commit? 83c9c764 generates a ValDef whose tpt TypeTree has no original; this contains a reference to the symbol for `d`. resetAttrs and the retypecheck assigns a new symbol for d and leaves a the reference to the prior symbol dangling. The real bug is the resetAttrs concept.
Diffstat (limited to 'test/pending')
-rw-r--r--test/pending/pos/t7234.scala15
-rw-r--r--test/pending/pos/t7234b.scala20
2 files changed, 35 insertions, 0 deletions
diff --git a/test/pending/pos/t7234.scala b/test/pending/pos/t7234.scala
new file mode 100644
index 0000000000..59a233d835
--- /dev/null
+++ b/test/pending/pos/t7234.scala
@@ -0,0 +1,15 @@
+trait Main {
+ trait A {
+ type B
+ }
+ trait C {
+ def c(a: A, x: Int = 0)(b: a.B)
+ }
+ def c: C
+ def d(a: A, x: Int = 0)(b: a.B)
+
+ def ok1(a: A)(b: a.B) = c.c(a, 42)(b)
+ def ok2(a: A)(b: a.B) = d(a)(b)
+
+ def fail(a: A)(b: a.B) = c.c(a)(b)
+}
diff --git a/test/pending/pos/t7234b.scala b/test/pending/pos/t7234b.scala
new file mode 100644
index 0000000000..fee98e87a8
--- /dev/null
+++ b/test/pending/pos/t7234b.scala
@@ -0,0 +1,20 @@
+trait Main {
+ trait A {
+ type B
+ def b: B
+ }
+ trait C {
+ def c(a: A, x: Int = 0)(b: => a.B, bs: a.B*)
+ def d(a: A = null, x: Int = 0)(b1: => a.B = a.b, b2: a.B = a.b)
+ }
+ def c: C
+ def ok(a: A)(b: a.B) = c.c(a, 42)(b)
+ def fail(a: A)(b: a.B) = c.c(a)(b)
+ def fail2(a: A)(b: a.B) = c.c(a)(b, b)
+ def fail3(a: A)(b: a.B) = c.c(a)(b, Seq[a.B](b): _*)
+
+ def fail4(a: A)(b: a.B) = c.d(a)()
+ def fail5(a: A)(b: a.B) = c.d(a)(b1 = a.b)
+ def fail6(a: A)(b: a.B) = c.d(a)(b2 = a.b)
+ def fail7(a: A)(b: a.B) = c.d()()
+}