diff options
author | Miles Sabin <miles@milessabin.com> | 2016-07-22 17:38:46 +0100 |
---|---|---|
committer | Miles Sabin <miles@milessabin.com> | 2016-07-22 17:50:53 +0100 |
commit | ce262e45141db642c2d5c7e4c7427f84fd08f854 (patch) | |
tree | 30b106cbb988b61901646f3dd987937c8b0999de /test | |
parent | b6812321be6686d17774db42a98c9aca869b51d5 (diff) | |
download | scala-ce262e45141db642c2d5c7e4c7427f84fd08f854.tar.gz scala-ce262e45141db642c2d5c7e4c7427f84fd08f854.tar.bz2 scala-ce262e45141db642c2d5c7e4c7427f84fd08f854.zip |
Added tests for SI-482/SI-4914
Diffstat (limited to 'test')
-rw-r--r-- | test/files/pos/t482.scala | 7 | ||||
-rw-r--r-- | test/files/pos/t4914.scala | 20 |
2 files changed, 27 insertions, 0 deletions
diff --git a/test/files/pos/t482.scala b/test/files/pos/t482.scala new file mode 100644 index 0000000000..b121c93337 --- /dev/null +++ b/test/files/pos/t482.scala @@ -0,0 +1,7 @@ +object Test { + class Foo { val z = "foo"; val y : z.type = z } + + val x : ({ val y : z.type } forSome { val z : String }) = new Foo + + val x2 : ({ val y : T } forSome { type T <: String with Singleton }) = new Foo +} diff --git a/test/files/pos/t4914.scala b/test/files/pos/t4914.scala new file mode 100644 index 0000000000..a6c8ef5a4e --- /dev/null +++ b/test/files/pos/t4914.scala @@ -0,0 +1,20 @@ +trait Type { + type S +} + +class ConcreteType extends Type { + type S = Double +} + +trait Base { + type T <: Type + val m: Map[t#S, t#S] forSome { type t <: T with Singleton } + val n: Map[x.type#S, x.type#S] forSome { val x: T } +} + +abstract class Derived extends Base { + override type T = ConcreteType + override val m = Map[Double, Double]() + /** This does not work. ยง3.2.10 indicates that types n is shorthand for type of m. */ + override val n = Map[Double, Double]() +} |