diff options
Diffstat (limited to 'src/compiler')
-rw-r--r-- | src/compiler/scala/tools/nsc/symtab/Symbols.scala | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/symtab/Symbols.scala b/src/compiler/scala/tools/nsc/symtab/Symbols.scala index 3c7fdd4e3e..ebab5d9be7 100644 --- a/src/compiler/scala/tools/nsc/symtab/Symbols.scala +++ b/src/compiler/scala/tools/nsc/symtab/Symbols.scala @@ -1747,20 +1747,22 @@ trait Symbols extends reflect.generic.Symbols { self: SymbolTable => private var mtpePeriod = NoPeriod private var mtpePre: Type = _ private var mtpeResult: Type = _ + private var mtpeInfo: Type = _ override def cloneSymbolImpl(owner: Symbol): Symbol = new MethodSymbol(owner, pos, name).copyAttrsFrom(this) def typeAsMemberOf(pre: Type): Type = { if (mtpePeriod == currentPeriod) { - if (mtpePre eq pre) return mtpeResult + if ((mtpePre eq pre) && (mtpeInfo eq info)) return mtpeResult } else if (isValid(mtpePeriod)) { mtpePeriod = currentPeriod - if (mtpePre eq pre) return mtpeResult + if ((mtpePre eq pre) && (mtpeInfo eq info)) return mtpeResult } val res = pre.computeMemberType(this) mtpePeriod = currentPeriod mtpePre = pre + mtpeInfo = info mtpeResult = res res } |