summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/pending/pos/bug4606.scala29
-rw-r--r--test/pending/run/bug3669.scala22
2 files changed, 51 insertions, 0 deletions
diff --git a/test/pending/pos/bug4606.scala b/test/pending/pos/bug4606.scala
new file mode 100644
index 0000000000..c9b9e0914e
--- /dev/null
+++ b/test/pending/pos/bug4606.scala
@@ -0,0 +1,29 @@
+object bug4606 {
+ class A(var x: Int)
+ class B(x: Int) extends A(x)
+ trait C { self: B =>
+ def foo = x
+ def bar = self.x
+ def baz = {
+ val b: B = self
+ b.x
+ }
+ }
+
+ object Toto extends App {
+ val x = new B(10) with C
+ println(x.foo) // 10
+ println(x.bar) // 10
+ println(x.baz) // 10
+ println(x.x) // 10
+ }
+}
+
+object bug3194 {
+ class A(var x: Int)
+ class B(x: Int) extends A(x) {
+ self: A =>
+
+ def update(z: Int) = this.x = z
+ }
+} \ No newline at end of file
diff --git a/test/pending/run/bug3669.scala b/test/pending/run/bug3669.scala
new file mode 100644
index 0000000000..4fd698c1a5
--- /dev/null
+++ b/test/pending/run/bug3669.scala
@@ -0,0 +1,22 @@
+trait MyTrait[T <: { var id: U }, U] {
+ def test(t: T): T = {
+ val v: U = t.id
+ t.id = v
+ t
+ }
+}
+
+class C (var id: String){
+ // uncommenting this fixes it
+ // def id_=(x: AnyRef) { id = x.asInstanceOf[String] }
+}
+
+class Test extends MyTrait[C, String]
+
+object Test {
+ def main(args: Array[String]): Unit = {
+ val t = new Test()
+ val c1 = new C("a")
+ val c2 = t.test(c1)
+ }
+}