diff options
author | Paul Phillips <paulp@improving.org> | 2012-02-12 12:40:11 -0800 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2012-02-12 12:40:11 -0800 |
commit | 6b56405cb39b979dccbadd06110e283a254b6150 (patch) | |
tree | 0754d9f35804a127eeef7829966aa673467eeec3 | |
parent | 5133a89556b5194dc53e396168eab73ab7d52e9c (diff) | |
download | scala-6b56405cb39b979dccbadd06110e283a254b6150.tar.gz scala-6b56405cb39b979dccbadd06110e283a254b6150.tar.bz2 scala-6b56405cb39b979dccbadd06110e283a254b6150.zip |
Updated existentials test with non-working parts.
Lazy accessors have the same essential problem as described in
recent commit messages, so this still doesn't work:
def f() = { case class Bob(); Bob } ; lazy val g = f
On the whole I'm trying to solve this at the wrong level. The derived
accessor methods and fields of a declaration should not ever wander far
enough apart that there is any challenge in reconciling them. (The same
is true for case classes/objects.) They're dependent synthetics who know
about one another from the beginning, all we have to do is not forget.
In the meantime, test case.
-rw-r--r-- | test/files/pos/existentials.scala | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/test/files/pos/existentials.scala b/test/files/pos/existentials.scala index c51f60b546..0adbc701a6 100644 --- a/test/files/pos/existentials.scala +++ b/test/files/pos/existentials.scala @@ -1,9 +1,22 @@ +/** All of these should work, some don't yet. + * !!! + */ class A { def f() = { case class Bob(); Bob } val quux0 = f() def quux1 = f() + // lazy val quux2 = f() + // def quux3 = { + // lazy val quux3a = f() + // quux3a + // } val bippy0 = f _ def bippy1 = f _ + // lazy val bippy2 = f _ + // val bippy3 = { + // lazy val bippy3a = f _ + // bippy3a + // } } |