aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/Contexts.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2014-02-02 16:04:01 +0100
committerMartin Odersky <odersky@gmail.com>2014-02-02 16:04:01 +0100
commitc683f1c1d8235fffc4475e7b51ddc7536ec7eaa1 (patch)
tree6445b1a2fe2c82f4d9bb4e845f6fec1338e328cb /src/dotty/tools/dotc/core/Contexts.scala
parentd4f3dfee061de3a03bae59bea102d2796d724f81 (diff)
downloaddotty-c683f1c1d8235fffc4475e7b51ddc7536ec7eaa1.tar.gz
dotty-c683f1c1d8235fffc4475e7b51ddc7536ec7eaa1.tar.bz2
dotty-c683f1c1d8235fffc4475e7b51ddc7536ec7eaa1.zip
wip for implicits handling root imports.
Diffstat (limited to 'src/dotty/tools/dotc/core/Contexts.scala')
-rw-r--r--src/dotty/tools/dotc/core/Contexts.scala8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/dotty/tools/dotc/core/Contexts.scala b/src/dotty/tools/dotc/core/Contexts.scala
index 0202a641b..b12ed0226 100644
--- a/src/dotty/tools/dotc/core/Contexts.scala
+++ b/src/dotty/tools/dotc/core/Contexts.scala
@@ -164,8 +164,10 @@ object Contexts {
else if (isImportContext) importInfo.importedImplicits
else if (isNonEmptyScopeContext) scope.implicitDecls
else Nil
- if (implicitRefs.isEmpty) outer.implicits
- else new ContextualImplicits(implicitRefs, outer.implicits.ctx)(this)
+ if (implicitRefs.isEmpty && !(isImportContext && importInfo.isRootImport))
+ outer.implicits // record root imports because they hide implicits in same import further out
+ else
+ new ContextualImplicits(implicitRefs, outer.implicits)(this)
}
implicitsCache
}
@@ -346,7 +348,7 @@ object Contexts {
object NoContext extends Context {
lazy val base = unsupported("base")
- override def implicits: ContextualImplicits = new ContextualImplicits(Nil, this)(this)
+ override val implicits: ContextualImplicits = new ContextualImplicits(Nil, null)(this)
}
/** A context base defines state and associated methods that exist once per