summaryrefslogtreecommitdiff
path: root/test/files/pos/test5refine.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2004-01-07 15:28:48 +0000
committerMartin Odersky <odersky@gmail.com>2004-01-07 15:28:48 +0000
commit836f5fbd907fe00bd9bd3849f1d41b13c2afd53a (patch)
treeceda286a11d8f97234bb77634f8e21f23a795433 /test/files/pos/test5refine.scala
parentdcac982fd6aefe45c6e91cb582044c54e40dee47 (diff)
downloadscala-836f5fbd907fe00bd9bd3849f1d41b13c2afd53a.tar.gz
scala-836f5fbd907fe00bd9bd3849f1d41b13c2afd53a.tar.bz2
scala-836f5fbd907fe00bd9bd3849f1d41b13c2afd53a.zip
*** empty log message ***
Diffstat (limited to 'test/files/pos/test5refine.scala')
-rw-r--r--test/files/pos/test5refine.scala75
1 files changed, 0 insertions, 75 deletions
diff --git a/test/files/pos/test5refine.scala b/test/files/pos/test5refine.scala
deleted file mode 100644
index 95670faa05..0000000000
--- a/test/files/pos/test5refine.scala
+++ /dev/null
@@ -1,75 +0,0 @@
-import scala._;
-
-object test {
-
- abstract trait F { type If; }
-
- def f[Jf](h: Jf):F { type If = Jf } = f[Jf](h);
-
- abstract trait G { type Ig; }
-
- def g[Jg](h: Jg):G { type Ig = Jg } = g[Jg](h);
-
- abstract class M() {
- type P;
- abstract class I() {
- type X;
-
- // Methods to check the type X and P as seen from instances of I
- def chk_ix(x: X): Unit = {}
- def chk_ip(p: P): Unit = {}
-
- // Value with type X as seen from instances of I
- def val_ix: X = val_ix;
- }
-
- val i: I { type X = G { type Ig = P } } = null;
-
- // Values with types P and i.X as seen from instances of M
- def val_mp: P = val_mp;
- def val_mix: G { type Ig = P } = g[P](val_mp);
- }
-
- abstract class N() extends M() {
- type Q;
- type P = F { type If = Q };
- val j:J { type Y = G { type Ig = Q } } = null;
-
- abstract class J() extends I() {
- type Y;
- type X = G { type Ig = Y; };
- // Values with types Y and X as seen from instances of J
- def val_jy: Y = val_jy;
- def val_jx: G { type Ig = Y; } = g[Y](val_jy);
-
- // Check type P
- chk_ip(val_mp);
- chk_ip(val_np);
- }
-
- // Values with types Q, X.P, i.X, j.Y and j.X as seen from instances of N
- def val_nq: Q = val_nq;
- def val_np: F { type If = Q } = f[Q](val_nq);
- def val_nix: G { type Ig = F { type If = Q } } = g[F { type If = Q }](val_np);
- def val_njy: G { type Ig = Q; } = g[Q](val_nq);
- def val_njx: G { type Ig = G { type Ig = Q }} = g[G { type Ig = Q; }](val_njy);
-
- // Check type i.P
- i.chk_ip(val_mp);
- i.chk_ip(val_np);
-
- // Check type j.P
- j.chk_ip(val_mp);
- j.chk_ip(val_np);
-
- // Check type i.X
- i.chk_ix(i.val_ix);
- i.chk_ix(val_mix);
- i.chk_ix(val_nix);
-
- // Check j.X
- j.chk_ix(j.val_ix);
- j.chk_ix(j.val_jx);
- j.chk_ix(val_njx);
- }
-} \ No newline at end of file