diff options
author | Martin Odersky <odersky@gmail.com> | 2014-06-12 12:46:57 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2014-06-12 12:55:11 +0200 |
commit | 51563aee5478f90a0f86c29385f74d020b8995dd (patch) | |
tree | 05d317678ee3eda3c8d15af334e5a7e221722644 /tests/pos/projections.scala | |
parent | c2175ec910165308e81c48bd8ca8910c50862be4 (diff) | |
download | dotty-51563aee5478f90a0f86c29385f74d020b8995dd.tar.gz dotty-51563aee5478f90a0f86c29385f74d020b8995dd.tar.bz2 dotty-51563aee5478f90a0f86c29385f74d020b8995dd.zip |
Change definition of isLegalPrefix so that it allows projecting on an abstract type.
This is needed to make the encoding og higher-kinded types work. E.g.
Rep[Int]
would be represented as
Rep { type Arg$0 = Int } # Apply
where Apply is an abstract member of the base class Lambfa$I of Rep.
Diffstat (limited to 'tests/pos/projections.scala')
-rw-r--r-- | tests/pos/projections.scala | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/pos/projections.scala b/tests/pos/projections.scala new file mode 100644 index 000000000..894a00bcf --- /dev/null +++ b/tests/pos/projections.scala @@ -0,0 +1,14 @@ +class projections { + + class Lambda { type Arg; type Apply } + + var x: (Lambda { type Apply = Int; type Arg = String }) # Apply = _ + var y: Int = _ + x = y + y = x + + var xx: (Lambda { type Apply = Arg } { type Arg = Int }) # Apply = _ + xx = y + y = xx + +} |