File tree Expand file tree Collapse file tree 2 files changed +19
-3
lines changed
compiler/src/dotty/tools/dotc/core Expand file tree Collapse file tree 2 files changed +19
-3
lines changed Original file line number Diff line number Diff line change @@ -181,7 +181,7 @@ class SymUtils:
181181 else {
182182 val children = self.children
183183 val companionMirror = self.useCompanionAsSumMirror
184- val ownerScope = if pre.isInstanceOf [SingletonType ] then pre.classSymbol else NoSymbol
184+ val ownerScope = if pre.isInstanceOf [SingletonType ] then pre.parentSymbols(_.isClass) else Nil
185185 def problem (child : Symbol ) = {
186186
187187 def accessibleMessage (sym : Symbol ): String =
@@ -191,8 +191,7 @@ class SymUtils:
191191 self.isContainedIn(sym) || sym.is(Module ) && isVisibleToParent(sym.owner)
192192 def isVisibleToScope (sym : Symbol ): Boolean =
193193 def isReachable : Boolean = ctx.owner.isContainedIn(sym)
194- def isMemberOfPrefix : Boolean =
195- ownerScope.exists && inherits(sym, ownerScope)
194+ def isMemberOfPrefix : Boolean = ownerScope.exists(inherits(sym, _))
196195 isReachable || isMemberOfPrefix || sym.is(Module ) && isVisibleToScope(sym.owner)
197196 if ! isVisibleToParent(sym) then i " to its parent $self"
198197 else if ! companionMirror && ! isVisibleToScope(sym) then i " to call site ${ctx.owner}"
Original file line number Diff line number Diff line change 1+
2+ trait SuperTrait {
3+ sealed trait InnerTrait
4+ case class Foo () extends InnerTrait
5+ }
6+
7+ trait OtherTrait
8+
9+ trait TraitWithSelfType extends SuperTrait { this : OtherTrait =>
10+ summon[deriving.Mirror .Of [Foo ]]
11+ summon[deriving.Mirror .Of [InnerTrait ]]
12+ }
13+
14+ object Implementation extends TraitWithSelfType , OtherTrait {
15+ summon[deriving.Mirror .Of [Foo ]]
16+ summon[deriving.Mirror .Of [InnerTrait ]]
17+ }
You can’t perform that action at this time.
0 commit comments