diff options
author | Martin Odersky <odersky@gmail.com> | 2004-01-07 15:28:48 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2004-01-07 15:28:48 +0000 |
commit | 836f5fbd907fe00bd9bd3849f1d41b13c2afd53a (patch) | |
tree | ceda286a11d8f97234bb77634f8e21f23a795433 /test/pos/test5refine.scala | |
parent | dcac982fd6aefe45c6e91cb582044c54e40dee47 (diff) | |
download | scala-836f5fbd907fe00bd9bd3849f1d41b13c2afd53a.tar.gz scala-836f5fbd907fe00bd9bd3849f1d41b13c2afd53a.tar.bz2 scala-836f5fbd907fe00bd9bd3849f1d41b13c2afd53a.zip |
*** empty log message ***
Diffstat (limited to 'test/pos/test5refine.scala')
-rw-r--r-- | test/pos/test5refine.scala | 75 |
1 files changed, 0 insertions, 75 deletions
diff --git a/test/pos/test5refine.scala b/test/pos/test5refine.scala deleted file mode 100644 index 95670faa05..0000000000 --- a/test/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 |