diff options
author | Paul Phillips <paulp@improving.org> | 2012-09-26 12:14:13 -0700 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2012-09-26 12:24:45 -0700 |
commit | e6f10b07d44f0ddde26246b4a41527a84eede81c (patch) | |
tree | 2268de6b9dccf22e3355b0ee1bcf63d7e7f10738 /test/files/pos | |
parent | 83b5d4c0c9af462fc562c571f17dfcd00f47255d (diff) | |
download | scala-e6f10b07d44f0ddde26246b4a41527a84eede81c.tar.gz scala-e6f10b07d44f0ddde26246b4a41527a84eede81c.tar.bz2 scala-e6f10b07d44f0ddde26246b4a41527a84eede81c.zip |
Fixed SI-5604, selections on package objects.
mkAttributedSelect, which creates a Select tree based on
a symbol, has been a major source of package object bugs,
because it has not been accurately identifying selections
on package objects. When selecting foo.bar, if foo turns
out to be a package object, the created Select tree must be
foo.`package`.bar
However mkAttributedSelect was only examining the owner of
the symbol, which means it would work if the package object
defined bar directly, but not if it inherited it.
Diffstat (limited to 'test/files/pos')
-rw-r--r-- | test/files/pos/t5604b/T_1.scala | 6 | ||||
-rw-r--r-- | test/files/pos/t5604b/T_2.scala | 6 | ||||
-rw-r--r-- | test/files/pos/t5604b/Test_1.scala | 7 | ||||
-rw-r--r-- | test/files/pos/t5604b/Test_2.scala | 7 | ||||
-rw-r--r-- | test/files/pos/t5604b/pack_1.scala | 5 |
5 files changed, 31 insertions, 0 deletions
diff --git a/test/files/pos/t5604b/T_1.scala b/test/files/pos/t5604b/T_1.scala new file mode 100644 index 0000000000..179dcb10c6 --- /dev/null +++ b/test/files/pos/t5604b/T_1.scala @@ -0,0 +1,6 @@ +// sandbox/t5604/T.scala +package t6504 + +trait T { + def foo: Boolean = false +} diff --git a/test/files/pos/t5604b/T_2.scala b/test/files/pos/t5604b/T_2.scala new file mode 100644 index 0000000000..179dcb10c6 --- /dev/null +++ b/test/files/pos/t5604b/T_2.scala @@ -0,0 +1,6 @@ +// sandbox/t5604/T.scala +package t6504 + +trait T { + def foo: Boolean = false +} diff --git a/test/files/pos/t5604b/Test_1.scala b/test/files/pos/t5604b/Test_1.scala new file mode 100644 index 0000000000..f7c58ebe83 --- /dev/null +++ b/test/files/pos/t5604b/Test_1.scala @@ -0,0 +1,7 @@ +// sandbox/t5604/Test.scala +package t6504 + +object Test { + def blerg1(a: Any): Any = if (foo) blerg1(0) + def blerg2(a: Any): Any = if (t6504.foo) blerg2(0) +} diff --git a/test/files/pos/t5604b/Test_2.scala b/test/files/pos/t5604b/Test_2.scala new file mode 100644 index 0000000000..f7c58ebe83 --- /dev/null +++ b/test/files/pos/t5604b/Test_2.scala @@ -0,0 +1,7 @@ +// sandbox/t5604/Test.scala +package t6504 + +object Test { + def blerg1(a: Any): Any = if (foo) blerg1(0) + def blerg2(a: Any): Any = if (t6504.foo) blerg2(0) +} diff --git a/test/files/pos/t5604b/pack_1.scala b/test/files/pos/t5604b/pack_1.scala new file mode 100644 index 0000000000..f50d568bfa --- /dev/null +++ b/test/files/pos/t5604b/pack_1.scala @@ -0,0 +1,5 @@ +// sandbox/t5604/pack.scala +package t6504 + +object `package` extends T { +} |