diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2012-05-11 07:44:12 +0200 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2012-05-11 07:44:12 +0200 |
commit | e40f3c8790bfa630d0a3e554251f7ada790116da (patch) | |
tree | 84996142392566c2caeb3fdccdae519eeed2f959 /test/files/pos | |
parent | df10f921158ea13ce8fb53c8e15ec290ace69d83 (diff) | |
download | scala-e40f3c8790bfa630d0a3e554251f7ada790116da.tar.gz scala-e40f3c8790bfa630d0a3e554251f7ada790116da.tar.bz2 scala-e40f3c8790bfa630d0a3e554251f7ada790116da.zip |
Test case closes SI-2435.
Diffstat (limited to 'test/files/pos')
-rw-r--r-- | test/files/pos/t2435.scala | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/test/files/pos/t2435.scala b/test/files/pos/t2435.scala new file mode 100644 index 0000000000..2db931b99f --- /dev/null +++ b/test/files/pos/t2435.scala @@ -0,0 +1,27 @@ +object Bug { + abstract class FChain { + type T + + def chain(constant:String) = + new FConstant[this.type](constant, this) //removing [this.type], everything compiles + } + + case class FConstant[E <: FChain](constant:String, tail:E) extends FChain { + type T = tail.T + } + + object FNil extends FChain { + type T = Unit + } + +} + +object Test { + import Bug._ + println("Compiles:") + val a1 = FNil.chain("a").chain("a") + val a2 = a1.chain("a") + + println("\nDoesn't compile:") + val a = FNil.chain("a").chain("a").chain("a") +} |