diff options
Diffstat (limited to 'src/dotty/tools/dotc/core/Types.scala')
-rw-r--r-- | src/dotty/tools/dotc/core/Types.scala | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/dotty/tools/dotc/core/Types.scala b/src/dotty/tools/dotc/core/Types.scala index e59c28ca2..a6ba7d9a0 100644 --- a/src/dotty/tools/dotc/core/Types.scala +++ b/src/dotty/tools/dotc/core/Types.scala @@ -1353,13 +1353,13 @@ object Types { } override def newLikeThis(prefix: Type)(implicit ctx: Context): TermRef = { - if (sig != Signature.NotAMethod && - sig != Signature.OverloadedSignature && - symbol.exists) { + val candidate = TermRef.withSig(prefix, name, sig) + if (symbol.exists && !candidate.symbol.exists) { // recompute from previous symbol val ownSym = symbol - TermRef.all(prefix, name).withDenot(asMemberOf(prefix).disambiguate(_ eq ownSym)) + val newd = asMemberOf(prefix) + candidate.withDenot(asMemberOf(prefix).suchThat(_ eq ownSym)) } - else TermRef.withSig(prefix, name, sig) + else candidate } override def equals(that: Any) = that match { |