diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2013-01-29 13:02:01 +0100 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2013-02-02 13:19:07 +0100 |
commit | 275b341545a3c4e633bd735cf45ccc1956a4233e (patch) | |
tree | 3f68aa101909b010ec25d70ac7894cde7b746311 /test/files | |
parent | 66fa1f22ac058e87350304388eca17aedc1e4b64 (diff) | |
download | scala-275b341545a3c4e633bd735cf45ccc1956a4233e.tar.gz scala-275b341545a3c4e633bd735cf45ccc1956a4233e.tar.bz2 scala-275b341545a3c4e633bd735cf45ccc1956a4233e.zip |
SI-6666 Catch VerifyErrors in the making in early defs.
As we did for self/super calls, add a backstop into
explicitouter and lambdalift to check when we try to
get an outer pointer to an under-construction instance.
Diffstat (limited to 'test/files')
-rw-r--r-- | test/files/neg/t6666.check | 9 | ||||
-rw-r--r-- | test/files/neg/t6666.scala | 10 |
2 files changed, 15 insertions, 4 deletions
diff --git a/test/files/neg/t6666.check b/test/files/neg/t6666.check index 63145f6ed7..6337d4c7d9 100644 --- a/test/files/neg/t6666.check +++ b/test/files/neg/t6666.check @@ -16,7 +16,7 @@ t6666.scala:54: error: Implementation restriction: access of value x$7 in class t6666.scala:58: error: Implementation restriction: access of method x$8 in class C3 from anonymous class 9, would require illegal premature access to the unconstructed `this` of class C3 F.hof(() => x) ^ -t6666.scala:62: error: Implementation restriction: access of method x$9 in class C4 from object Nested$3, would require illegal premature access to the unconstructed `this` of class C4 +t6666.scala:62: error: Implementation restriction: access of method x$9 in class C4 from object Nested$4, would require illegal premature access to the unconstructed `this` of class C4 object Nested { def xx = x} ^ t6666.scala:76: error: Implementation restriction: access of method x$11 in class C11 from anonymous class 12, would require illegal premature access to the unconstructed `this` of class C11 @@ -25,10 +25,13 @@ t6666.scala:76: error: Implementation restriction: access of method x$11 in clas t6666.scala:95: error: Implementation restriction: access of method x$12 in class C13 from anonymous class 13, would require illegal premature access to the unconstructed `this` of class C13 F.hof(() => x) ^ -t6666.scala:104: error: Implementation restriction: access of method x$13 in class C14 from object Nested$4, would require illegal premature access to the unconstructed `this` of class C14 +t6666.scala:104: error: Implementation restriction: access of method x$13 in class C14 from object Nested$5, would require illegal premature access to the unconstructed `this` of class C14 object Nested { def xx = x} ^ t6666.scala:112: error: Implementation restriction: access of method foo$1 in class COuter from class CInner$1, would require illegal premature access to the unconstructed `this` of class COuter class CInner extends C({foo}) ^ -11 errors found +t6666.scala:118: error: Implementation restriction: access of method x$14 in class CEarly from object Nested$6, would require illegal premature access to the unconstructed `this` of class CEarly + object Nested { def xx = x} + ^ +12 errors found diff --git a/test/files/neg/t6666.scala b/test/files/neg/t6666.scala index 19073884bd..1919ea3ca9 100644 --- a/test/files/neg/t6666.scala +++ b/test/files/neg/t6666.scala @@ -110,4 +110,12 @@ class C14(a: Any) { class COuter extends C({ def foo = 0 class CInner extends C({foo}) -})
\ No newline at end of file +}) + + +class CEarly(a: Any) extends { + val early = {def x = "".toString + object Nested { def xx = x} + Nested.xx + } +} with AnyRef
\ No newline at end of file |