diff options
author | Martin Odersky <odersky@gmail.com> | 2014-02-02 16:04:01 +0100 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2014-02-02 16:04:01 +0100 |
commit | c683f1c1d8235fffc4475e7b51ddc7536ec7eaa1 (patch) | |
tree | 6445b1a2fe2c82f4d9bb4e845f6fec1338e328cb /src/dotty/tools/dotc/core/Contexts.scala | |
parent | d4f3dfee061de3a03bae59bea102d2796d724f81 (diff) | |
download | dotty-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.scala | 8 |
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 |