Skip to content

Commit 23ab6fd

Browse files
KacperFKorbanKordyjan
authored andcommitted
Wunused: Check if symbol exists before isValidMemberDef check
closes lampepfl#17309
1 parent 5990252 commit 23ab6fd

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

compiler/src/dotty/tools/dotc/transform/CheckUnused.scala

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -681,7 +681,7 @@ object CheckUnused:
681681
/** A function is overriden. Either has `override flags` or parent has a matching member (type and name) */
682682
private def isOverriden(using Context): Boolean =
683683
sym.is(Flags.Override) ||
684-
(if sym.exists then sym.owner.thisType.parents.exists(p => sym.matchingMember(p).exists) else false)
684+
(sym.exists && sym.owner.thisType.parents.exists(p => sym.matchingMember(p).exists))
685685

686686
end extension
687687

@@ -708,7 +708,11 @@ object CheckUnused:
708708

709709
extension (memDef: tpd.MemberDef)
710710
private def isValidMemberDef(using Context): Boolean =
711-
!memDef.symbol.isUnusedAnnot && !memDef.symbol.isAllOf(Flags.AccessorCreationFlags) && !memDef.name.isWildcard && !memDef.symbol.owner.is(Extension)
711+
memDef.symbol.exists
712+
&& !memDef.symbol.isUnusedAnnot
713+
&& !memDef.symbol.isAllOf(Flags.AccessorCreationFlags)
714+
&& !memDef.name.isWildcard
715+
&& !memDef.symbol.owner.is(ExtensionMethod)
712716

713717
private def isValidParam(using Context): Boolean =
714718
val sym = memDef.symbol

0 commit comments

Comments
 (0)