summaryrefslogtreecommitdiff
path: root/test/files/run/structural.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2009-09-21 12:50:04 +0000
committerMartin Odersky <odersky@gmail.com>2009-09-21 12:50:04 +0000
commitd5b02c8652d7edbdfb0b5a02570d370d3bad299f (patch)
treef57063402f8a83cd3f7caf437afedbdb279be400 /test/files/run/structural.scala
parentced5ee337f45d0209ec3e7c69a6e04e956257ec0 (diff)
downloadscala-d5b02c8652d7edbdfb0b5a02570d370d3bad299f.tar.gz
scala-d5b02c8652d7edbdfb0b5a02570d370d3bad299f.tar.bz2
scala-d5b02c8652d7edbdfb0b5a02570d370d3bad299f.zip
new arrays are done.
Diffstat (limited to 'test/files/run/structural.scala')
-rw-r--r--test/files/run/structural.scala201
1 files changed, 0 insertions, 201 deletions
diff --git a/test/files/run/structural.scala b/test/files/run/structural.scala
deleted file mode 100644
index 5fc2292b42..0000000000
--- a/test/files/run/structural.scala
+++ /dev/null
@@ -1,201 +0,0 @@
-object test1 {
-
- val o1 = new Object { override def toString = "ohone" }
- val o2 = new Object { override def toString = "ohtwo" }
-
- val t1 = new Tata("tieone")
- val t2 = new Tata("tietwo")
-
- class Tata(name: String) {
- override def toString = name
- def tatMe = "oy"
- }
-
- class Titi extends Tata("titi")
-
- object Rec {
- val a = 1
- val b = 2
- val c = "hey"
- def d(x: AnyRef) = new Object { override def toString = "dee" }
- def e(x: Tata) = new Tata("iei")
- def f(x: Int) = x + 1
- def g(x: Int) = { v = x }
- def h(x: Unit) = new Object { override def toString = "eitch" }
- def i(x: Array[Int]) = x(0)
- def j(x: Array[AnyRef]) = x(0)
- def k(x: Array[Char]) = x(0)
- def l(x: Array[Unit]) = x(0)
- def m(x: Array[String]) = x(0)
- def n(x: Array[Tata]) = x(0)
- def o: Array[Int] = Array(1, 2, 3)
- def p: Array[AnyRef] = Array(o1, o2)
- def q: Array[Char] = Array('1', '2')
- def r: Array[Unit] = Array((), ())
- def s: Array[String] = Array("one", "two")
- def t: Array[Tata] = Array(t1, t2)
- def u[T](f: T=>T, v:T): T = f(v)
- var v = 4
- var w = 11
- val x = t1
- val y: Tata = null
- def z(t: Tata) = ()
- }
-
- type rt = Object {
- val a: Int;
- val c: String;
- def d(x: AnyRef): AnyRef
- def e(x: Tata): Tata
- def f(x: Int): Int;
- def h(x: Unit): AnyRef;
- def i(x: Array[Int]): Int
- def j(x: Array[AnyRef]): AnyRef
- def k(x: Array[Char]): Char
- def l(x: Array[Unit]): Unit
- def m(x: Array[String]): String
- def n(x: Array[Tata]): Tata
- def o: Array[Int]
- def p: Array[AnyRef]
- def q: Array[Char]
- def r: Array[Unit]
- def s: Array[String]
- def t: Array[Tata]
- def u[T](f: T=>T, v:T): T
- var v: Int
- val y: Tata
- }
-
- def l (r: rt) {
- println(" 1. " + r.c)
- println(" 2. " + r.a + 1)
- println(" 3. " + r.d(o1))
- println(" 4. " + r.e(t1))
- println(" 5. " + (r.f(4) + 1))
- println(" 6. " + r.f(4) + 1)
- println(" 7. " + r.f(r.a))
- println(" 8. " + r.v)
- r.v = r.v + 1
- println("10. " + r.v)
- println("11. " + r.h(()))
- println("12. " + r.i(Array(1, 2, 3)))
- println("13. " + r.j(Array(o1, o2)))
- println("14. " + r.k(Array('1', '2')))
- println("15. " + r.l(Array((), ())))
- println("16. " + r.m(Array("one", "two")))
- println("17. " + r.n(Array(t1, t2)))
- println("18. " + (r.o(0) + 1))
- println("19. " + (r.p(0).hashCode() > 0))
- println("20. " + r.q(0))
- println("21. " + r.r(0))
- println("22. " + r.m(r.s))
- println("23. " + r.t(0).tatMe)
- println("24. " + r.u[Int](_+1,0))
- println("25. " + r.y)
- println("26. " + r.e(null))
- }
-
- /*def ma[T](r: Object{def e(x: T): T; val x: T}) {
- println("30. " + r.e(r.x)) // static error
- }*/
-
- def mb(r: Object { def e[T](x: T): T }) {
- println("31. " + r.e[Int](4)) // while this is ok
- }
-
- def m1(r: Object { def z(x: Tata): Unit }) {
- println("32. " + r.z(new Titi)) // while this is ok
- }
-
- def m2[T](r: Object { def e(x: Tata): T; val x: Tata }) {
- println("33. " + r.e(r.x)) // and this too
- }
-
- class Rec3[T] {
- def e(x: T): T = x
- }
-
- def m3[T](r: Rec3[T], x: T) {
- println("33. " + r.e(x)) // and this too
- }
-
- Rec.g(11)
-
- this.l(Rec)
- this.mb(new Object{def e[T](x: T): T = x})
- this.m1(Rec)
- this.m2[Tata](Rec)
- this.m3[Tata](new Rec3[Tata], t1)
-}
-
-object test2 {
- class C extends { def f() { println("1") } }
- val x1 = new C
- x1.f()
-
- abstract class D extends { def f() }
- val x2 = new D { def f() { println("2") } }
- x2.f()
-
- val x3 = new { def f() { println("3") } }
- def run(x: { def f() }) { x.f() }
- run(x3)
-
- type T = { def f() }
- val x4 = new AnyRef { def f() { println("4") } } // ok!
- //val x4 = new T { def f() { println("4") } } // error! (bug #1241)
- x4.f()
-
- val x5: T = new { def f() { println("5") } }
- x5.f()
-}
-
-object test3 {
-
- case class Exc extends Exception
-
- object Rec {
- def f = throw Exc()
- }
-
- def m(r: { def f: Nothing }) =
- try {
- r.f
- }
- catch {
- case e: Exc => println("caught")
- case e => println(e)
- }
-
- m(Rec)
-
-}
-
-object test4 {
-
- class A
-
- val aar = Array(new A, new A, new A)
- val nar = Array(1, 2)
-
- def f(p: {def size: Int}) = println(p.size)
- //def g[T <: {def size: Int}](p: T) = println(p.size) // open issue
- //def h[T <% {def size: Int}](p: T) = println(p.size) // open issue
-
- f(aar)
- f(nar)
-
- //g(aar)
- //g(nar)
-
- //h(aar)
- //h(nar)
-
-}
-
-object Test extends Application {
- test1
- test2
- test3
- test4
-}