From 5d1339b1211dce7469fddaccecdc0437db41252f Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Fri, 5 Sep 2008 13:07:08 +0000 Subject: fixed problem with volatile types. --- test/files/neg/null-unsoundness.check | 5 +++++ test/files/neg/null-unsoundness.scala | 15 +++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 test/files/neg/null-unsoundness.check create mode 100644 test/files/neg/null-unsoundness.scala (limited to 'test/files/neg') diff --git a/test/files/neg/null-unsoundness.check b/test/files/neg/null-unsoundness.check new file mode 100644 index 0000000000..5f28e76d06 --- /dev/null +++ b/test/files/neg/null-unsoundness.check @@ -0,0 +1,5 @@ +null-unsoundness.scala:8: error: stable identifier required, but A.this.x found. + Note that value x is not stable because its type, A.this.D with A.this.A, is volatile. + var y: x.T = new C("abc") + ^ +one error found diff --git a/test/files/neg/null-unsoundness.scala b/test/files/neg/null-unsoundness.scala new file mode 100644 index 0000000000..d30ff613b1 --- /dev/null +++ b/test/files/neg/null-unsoundness.scala @@ -0,0 +1,15 @@ +class B +class C(x: String) extends B + +class A { + type A >: Null + class D { type T >: C <: B } + val x: D with A = null + var y: x.T = new C("abc") +} +object Test extends A with Application { + class C { type T = Int; val x = 1 } + type A = C + y = 42 +} + -- cgit v1.2.3