aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/Types.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/dotty/tools/dotc/core/Types.scala')
-rw-r--r--src/dotty/tools/dotc/core/Types.scala10
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 {