diff options
Diffstat (limited to 'src/dotty/tools/dotc')
-rw-r--r-- | src/dotty/tools/dotc/core/Types.scala | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/dotty/tools/dotc/core/Types.scala b/src/dotty/tools/dotc/core/Types.scala index 55390de5a..9c0a0ff49 100644 --- a/src/dotty/tools/dotc/core/Types.scala +++ b/src/dotty/tools/dotc/core/Types.scala @@ -1256,8 +1256,14 @@ object Types { abstract case class TermRef(override val prefix: Type, name: TermName) extends NamedType with SingletonType { def isOverloaded(implicit ctx: Context) = denot.isOverloaded - def alternatives(implicit ctx: Context) = - denot.alternatives map (TermRef(prefix, name).withDenot(_)) + + private def rewrap(sd: SingleDenotation)(implicit ctx: Context) = + TermRef(prefix, name) withDenot sd + + def alternatives(implicit ctx: Context): List[TermRef] = + denot.alternatives map rewrap + def altsWith(p: Symbol => Boolean)(implicit ctx: Context): List[TermRef] = + denot.altsWith(p) map rewrap } abstract case class TypeRef(override val prefix: Type, name: TypeName) extends NamedType |