From e51207992f525ed9e32a7a9a39512b4d7e503c03 Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Tue, 5 Jun 2007 15:57:59 +0000 Subject: deprecated &f, .f, requires. Added existential types. --- test/files/pos/bug0039.scala | 2 +- test/files/pos/bug210.scala | 4 ++-- test/files/pos/bug211.scala | 2 +- test/files/pos/bug267.scala | 8 ++++---- test/files/pos/bug360.scala | 4 ++-- test/files/pos/bug361.scala | 2 +- test/files/pos/bug372.scala | 2 +- test/files/pos/bug592.scala | 2 +- test/files/pos/bug780.scala | 2 +- test/files/pos/pat_iuli.scala | 4 ++-- test/files/pos/philippe4.scala | 2 +- test/files/pos/scoping1.scala | 2 +- test/files/pos/scoping3.scala | 3 +-- test/files/pos/unapplyContexts2.scala | 2 +- 14 files changed, 20 insertions(+), 21 deletions(-) (limited to 'test/files/pos') diff --git a/test/files/pos/bug0039.scala b/test/files/pos/bug0039.scala index e1fc62f40f..652c606b0e 100644 --- a/test/files/pos/bug0039.scala +++ b/test/files/pos/bug0039.scala @@ -1,4 +1,4 @@ -abstract class Extensible[A, This <: Extensible[A, This]](x: A, xs: This) requires This { +abstract class Extensible[A, This <: Extensible[A, This]](x: A, xs: This) { self: This => def mkObj(x: A, xs: This): This; } class Fixed[A](x: A, xs: Fixed[A]) extends Extensible[A, Fixed[A]](x, xs) { diff --git a/test/files/pos/bug210.scala b/test/files/pos/bug210.scala index efcad531d9..9a7ef62cd9 100644 --- a/test/files/pos/bug210.scala +++ b/test/files/pos/bug210.scala @@ -1,13 +1,13 @@ trait Lang1 { trait Exp; trait Visitor { def f(left: Exp): unit; } - class Eval1 requires Visitor extends Visitor { + class Eval1 extends Visitor { self: Visitor => def f(left: Exp) = (); } } trait Lang2 extends Lang1 { - class Eval2 requires Visitor extends Eval1; + class Eval2 extends Eval1 { self: Visitor => } } /* object Main with Application { diff --git a/test/files/pos/bug211.scala b/test/files/pos/bug211.scala index 424a396ea1..1c2c54934d 100644 --- a/test/files/pos/bug211.scala +++ b/test/files/pos/bug211.scala @@ -1,6 +1,6 @@ trait A; trait B; -class Foo requires (A with B) extends A with B; +class Foo extends A with B { self: A with B => } object Test extends Application { new Foo(); Console.println("bug211 completed"); diff --git a/test/files/pos/bug267.scala b/test/files/pos/bug267.scala index 66add083f7..92282f77a2 100644 --- a/test/files/pos/bug267.scala +++ b/test/files/pos/bug267.scala @@ -11,7 +11,7 @@ trait Base { trait Exp { def eval: int } - class Num(v: int) requires exp extends Exp { + class Num(v: int) extends Exp { self: exp => val value = v; def eval = value } @@ -26,7 +26,7 @@ object testBase extends Application with Base { /** Data extension: An extension of `Base' with `Plus' expressions */ trait BasePlus extends Base { - class Plus(l: exp, r: exp) requires exp extends Exp { + class Plus(l: exp, r: exp) extends Exp { self: exp => val left = l; val right = r; def eval = left.eval + right.eval @@ -41,7 +41,7 @@ trait Show extends Base { trait Exp1 extends Exp { def show: String; } - class Num1(v: int) requires (exp with Num1) extends Num(v) with Exp1 { + class Num1(v: int) extends Num(v) with Exp1 { self: exp with Num1 => def show = value.toString(); } } @@ -49,7 +49,7 @@ trait Show extends Base { /** Operation extension: An extension of `BasePlus' with 'show' methods. */ trait ShowPlus extends BasePlus with Show { - class Plus1(l: exp, r: exp) requires (exp with Plus1) extends Plus(l, r) with Exp1 { + class Plus1(l: exp, r: exp) extends Plus(l, r) with Exp1 { self: exp with Plus1 => def show = left.show + " + " + right.show } } diff --git a/test/files/pos/bug360.scala b/test/files/pos/bug360.scala index 0860eb8ee3..64a02519cc 100644 --- a/test/files/pos/bug360.scala +++ b/test/files/pos/bug360.scala @@ -1,9 +1,9 @@ // $Id$ -abstract class Bug360A requires Bug360C { +abstract class Bug360A { self: Bug360C => def f: String = "hello"; } -trait Bug360B requires Bug360C { +trait Bug360B { self: Bug360C => object d { Console.println(f); } diff --git a/test/files/pos/bug361.scala b/test/files/pos/bug361.scala index b12097e2cb..1e490c3812 100644 --- a/test/files/pos/bug361.scala +++ b/test/files/pos/bug361.scala @@ -2,7 +2,7 @@ class Bug361Global extends Bug361Trees; -abstract class Bug361Trees requires Bug361Global { +abstract class Bug361Trees { self: Bug361Global => abstract class Tree { var pos: int = 0; diff --git a/test/files/pos/bug372.scala b/test/files/pos/bug372.scala index 162248657b..44c248bcd1 100644 --- a/test/files/pos/bug372.scala +++ b/test/files/pos/bug372.scala @@ -1,4 +1,4 @@ // $Id$ class Bug372Names; -class Bug372Symbols requires (Bug372Symbols with Bug372Names); +class Bug372Symbols { self: Bug372Symbols with Bug372Names => } diff --git a/test/files/pos/bug592.scala b/test/files/pos/bug592.scala index 4d41f112ee..6a941ef51a 100644 --- a/test/files/pos/bug592.scala +++ b/test/files/pos/bug592.scala @@ -22,7 +22,7 @@ abstract class DirectedGraph extends Graph { override def toString = ""+origin+" --> "+dest } - class NodeImpl requires Node extends NodeIntf { + class NodeImpl extends NodeIntf { self: Node => val id = ids ids = ids + 1 def connectWith(node: Node): Edge = { diff --git a/test/files/pos/bug780.scala b/test/files/pos/bug780.scala index 0b4601c219..7ed6745d9f 100644 --- a/test/files/pos/bug780.scala +++ b/test/files/pos/bug780.scala @@ -1,2 +1,2 @@ class B extends A { protected val x = false } -trait A requires B { x } +trait A { self: B => x } diff --git a/test/files/pos/pat_iuli.scala b/test/files/pos/pat_iuli.scala index 9d5d1c4776..46356ff588 100644 --- a/test/files/pos/pat_iuli.scala +++ b/test/files/pos/pat_iuli.scala @@ -1,4 +1,4 @@ -trait Ops requires MyCodes { +trait Ops { self: MyCodes => abstract class Instru object opcodes { case class SWITCH(i:Int) extends Instru @@ -6,7 +6,7 @@ trait Ops requires MyCodes { } } -trait Blox requires MyCodes { +trait Blox { self: MyCodes => import opcodes._ class Basick { var foo: Instru = null diff --git a/test/files/pos/philippe4.scala b/test/files/pos/philippe4.scala index c98aa2236e..9ce3691f5e 100644 --- a/test/files/pos/philippe4.scala +++ b/test/files/pos/philippe4.scala @@ -1,3 +1,3 @@ -trait Foo[t <: Foo[t]] requires t { +trait Foo[t <: Foo[t]] { self: t => def foo(that: t): Boolean; } diff --git a/test/files/pos/scoping1.scala b/test/files/pos/scoping1.scala index ee714af1b0..c72df7fa8b 100644 --- a/test/files/pos/scoping1.scala +++ b/test/files/pos/scoping1.scala @@ -2,7 +2,7 @@ object This extends Application { trait A { def foo(): unit; } - class C requires A { + class C { self: A => def bar() = this.foo(); } class D extends C with A { diff --git a/test/files/pos/scoping3.scala b/test/files/pos/scoping3.scala index 7f45723ce2..c1a65e287f 100644 --- a/test/files/pos/scoping3.scala +++ b/test/files/pos/scoping3.scala @@ -15,8 +15,7 @@ object CI { trait TreeDisplayFinal extends TreeDisplay with TreeDisplayExp { type TreeNode <: ITreeNode with ITreeNodeExp; } - abstract class SimpleTreeDisplay requires TreeDisplayFinal extends -TreeDisplay { + abstract class SimpleTreeDisplay extends TreeDisplay { self: TreeDisplayFinal => def display() = { this.getRoot().display(); } } } diff --git a/test/files/pos/unapplyContexts2.scala b/test/files/pos/unapplyContexts2.scala index fcf1e2ff62..1db8c5160f 100644 --- a/test/files/pos/unapplyContexts2.scala +++ b/test/files/pos/unapplyContexts2.scala @@ -2,7 +2,7 @@ trait Analyzer { val WILDCARD = "23" } -trait Contexts2 requires Analyzer { +trait Contexts2 { self: Analyzer => class Context { def collect(sels: List[String]): List[String] = sels match { case List(WILDCARD) => val dummy = WILDCARD; Nil -- cgit v1.2.3