diff options
Diffstat (limited to 'src/test/scala/scala/async/run/hygiene/Hygiene.scala')
-rw-r--r-- | src/test/scala/scala/async/run/hygiene/Hygiene.scala | 47 |
1 files changed, 35 insertions, 12 deletions
diff --git a/src/test/scala/scala/async/run/hygiene/Hygiene.scala b/src/test/scala/scala/async/run/hygiene/Hygiene.scala index 2aaf515..bb28d5b 100644 --- a/src/test/scala/scala/async/run/hygiene/Hygiene.scala +++ b/src/test/scala/scala/async/run/hygiene/Hygiene.scala @@ -88,16 +88,39 @@ class HygieneSpec { ext mustBe (14) } -// @Test def `this reference is maintained`() { -// object Test { -// def blerg = 1 -// def check() { -// AsyncId.async { -// assert(this.blerg == 1) -// assert(this == Test, this.getClass) -// } -// } -// } -// Test.check() -// } + trait T1 { + def blerg = 0 + } + + object O1 extends T1 { + override def blerg = 1 + + def check() { + val blerg = 3 + AsyncId.async { + assert(this == O1, this.getClass) + assert(this.blerg == 1) + assert(super.blerg == 0) + assert(super[T1].blerg == 0) + } + } + } + + @Test def `this reference is maintained`() { + O1.check() + } + + @Test def `this reference is maintained to local class`() { + object O2 { + def blerg = 2 + + def check() { + AsyncId.async { + assert(this.blerg == 2) + assert(this == O2, this.getClass) + } + } + } + O2.check() + } } |