diff options
-rw-r--r-- | src/compiler/scala/reflect/internal/Symbols.scala | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/compiler/scala/reflect/internal/Symbols.scala b/src/compiler/scala/reflect/internal/Symbols.scala index 42265d6969..533a343589 100644 --- a/src/compiler/scala/reflect/internal/Symbols.scala +++ b/src/compiler/scala/reflect/internal/Symbols.scala @@ -2322,11 +2322,13 @@ trait Symbols extends api.Symbols { self: SymbolTable => } override def sourceModule = module private var implicitMembersCacheValue: List[Symbol] = List() - private var implicitMembersCacheKey: Type = NoType + private var implicitMembersCacheKey1: Type = NoType + private var implicitMembersCacheKey2: ScopeEntry = null def implicitMembers: List[Symbol] = { val tp = info - if (implicitMembersCacheKey ne tp) { - implicitMembersCacheKey = tp + if ((implicitMembersCacheKey1 ne tp) || (implicitMembersCacheKey2 ne tp.decls.elems)) { + implicitMembersCacheKey1 = tp + implicitMembersCacheKey2 = tp.decls.elems implicitMembersCacheValue = tp.implicitMembers } implicitMembersCacheValue |