diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2012-05-22 00:34:06 +0200 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2012-05-22 08:07:34 +0200 |
commit | 820897b978ee6837ca463b186bab0f6349807c18 (patch) | |
tree | d97ec24f78165a1ac6be704630176927f94ff6c9 /test/files/neg/t2405.scala | |
parent | f406550146250f5a6036d3d778582efa6d68252a (diff) | |
download | scala-820897b978ee6837ca463b186bab0f6349807c18.tar.gz scala-820897b978ee6837ca463b186bab0f6349807c18.tar.bz2 scala-820897b978ee6837ca463b186bab0f6349807c18.zip |
SI-2405 Confer implicit privileges to renamed imports.
Yin and yang would be pleased: A fix in two parts.
1. Use the name of the imported symbol, rather than the alias, in the generated `Select(qual, name)` tree.
2. Do the opposite in `isQualifyingImplicit`, which performs one part of the shadowing check.
But there is still work to do. The second part of the shadowing check, `nonImplicitSynonymInScope`,
fails to notice this case (irrespective of aliased imports).
// Expecting shadowing #2. Alas, none is cast!
object Test1 {
object A { implicit val x: Int = 1 }
import A.x
def x: Int = 0
implicitly[Int]
}
I'm hitching the residual problem to SI-4270's wagon.
Diffstat (limited to 'test/files/neg/t2405.scala')
-rw-r--r-- | test/files/neg/t2405.scala | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/test/files/neg/t2405.scala b/test/files/neg/t2405.scala new file mode 100644 index 0000000000..6982285b98 --- /dev/null +++ b/test/files/neg/t2405.scala @@ -0,0 +1,10 @@ +object A { implicit val x: Int = 1 } + +// Expecting shadowing #1 +object Test2 { + { + import A.{x => y} + def y: Int = 0 + implicitly[Int] + } +} |