From d1b7f2c39561ae64c95b94242fe3bc91beb8af25 Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Wed, 21 Dec 2016 20:20:44 +0100 Subject: Address reviewer's comments --- compiler/src/dotty/tools/dotc/core/TypeOps.scala | 4 ++-- compiler/src/dotty/tools/dotc/core/Types.scala | 7 +++---- 2 files changed, 5 insertions(+), 6 deletions(-) (limited to 'compiler/src/dotty') diff --git a/compiler/src/dotty/tools/dotc/core/TypeOps.scala b/compiler/src/dotty/tools/dotc/core/TypeOps.scala index be8dc2713..db73daaa2 100644 --- a/compiler/src/dotty/tools/dotc/core/TypeOps.scala +++ b/compiler/src/dotty/tools/dotc/core/TypeOps.scala @@ -90,7 +90,7 @@ trait TypeOps { this: Context => // TODO: Make standalone object. else { val pre1 = asSeenFrom(tp.prefix, pre, cls, theMap) if (pre1.isUnsafeNonvariant) { - val safeCtx = ctx.withProperty(TypeOps.findMemberLimit, Some(Config.PendingFindMemberLimit)) + val safeCtx = ctx.withProperty(TypeOps.findMemberLimit, Some(())) pre1.member(tp.name)(safeCtx).info match { case TypeAlias(alias) => // try to follow aliases of this will avoid skolemization. @@ -565,5 +565,5 @@ object TypeOps { * of recursive member searches. If the limit is reached, findMember returns * NoDenotation. */ - val findMemberLimit = new Property.Key[Int] + val findMemberLimit = new Property.Key[Unit] } diff --git a/compiler/src/dotty/tools/dotc/core/Types.scala b/compiler/src/dotty/tools/dotc/core/Types.scala index dcc1019e4..64fa48071 100644 --- a/compiler/src/dotty/tools/dotc/core/Types.scala +++ b/compiler/src/dotty/tools/dotc/core/Types.scala @@ -575,10 +575,9 @@ object Types { ctx.findMemberCount = recCount if (recCount >= Config.LogPendingFindMemberThreshold) { ctx.pendingMemberSearches = name :: ctx.pendingMemberSearches - ctx.property(TypeOps.findMemberLimit) match { - case Some(limit) if ctx.findMemberCount > limit => return NoDenotation - case _ => - } + if (ctx.property(TypeOps.findMemberLimit).isDefined && + ctx.findMemberCount > Config.PendingFindMemberLimit) + return NoDenotation } } -- cgit v1.2.3