aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/dotty/tools/dotc/core/Contexts.scala37
-rw-r--r--tests/pending/run/StackMap.scala7
2 files changed, 18 insertions, 26 deletions
diff --git a/src/dotty/tools/dotc/core/Contexts.scala b/src/dotty/tools/dotc/core/Contexts.scala
index 15c7b4b11..206ef9d8b 100644
--- a/src/dotty/tools/dotc/core/Contexts.scala
+++ b/src/dotty/tools/dotc/core/Contexts.scala
@@ -177,26 +177,25 @@ object Contexts {
/** The new implicit references that are introduced by this scope */
private var implicitsCache: ContextualImplicits = null
def implicits: ContextualImplicits = {
- if (implicitsCache == null ) {
- val outerImplicits =
- if (isImportContext && importInfo.hiddenRoot.exists)
- outer.implicits exclude importInfo.hiddenRoot
- else
- outer.implicits
- try
- implicitsCache = {
- val implicitRefs: List[TermRef] =
- if (isClassDefContext) owner.thisType.implicitMembers
- else if (isImportContext) importInfo.importedImplicits
- else if (isNonEmptyScopeContext) scope.implicitDecls
- else Nil
- if (implicitRefs.isEmpty) outerImplicits
- else new ContextualImplicits(implicitRefs, outerImplicits)(this)
- }
- catch {
- case ex: CyclicReference => implicitsCache = outerImplicits
+ if (implicitsCache == null )
+ implicitsCache = {
+ val implicitRefs: List[TermRef] =
+ if (isClassDefContext)
+ try owner.thisType.implicitMembers
+ catch {
+ case ex: CyclicReference => Nil
+ }
+ else if (isImportContext) importInfo.importedImplicits
+ else if (isNonEmptyScopeContext) scope.implicitDecls
+ else Nil
+ val outerImplicits =
+ if (isImportContext && importInfo.hiddenRoot.exists)
+ outer.implicits exclude importInfo.hiddenRoot
+ else
+ outer.implicits
+ if (implicitRefs.isEmpty) outerImplicits
+ else new ContextualImplicits(implicitRefs, outerImplicits)(this)
}
- }
implicitsCache
}
diff --git a/tests/pending/run/StackMap.scala b/tests/pending/run/StackMap.scala
deleted file mode 100644
index 5220758fe..000000000
--- a/tests/pending/run/StackMap.scala
+++ /dev/null
@@ -1,7 +0,0 @@
-object Test {
- var implicitsCache = null
-
- def main(args: Array[String]): Unit = {
- implicitsCache = try{null} catch { case ex: Exception => null }
- }
-}