Skip to content

Commit c9ca7ce

Browse files
authored
Wunused: Check if symbol exists before isValidMemberDef check (#17316)
closes lampepfl#17309
2 parents 7a6dc76 + 6bf24df commit c9ca7ce

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
@@ -682,7 +682,7 @@ object CheckUnused:
682682
/** A function is overriden. Either has `override flags` or parent has a matching member (type and name) */
683683
private def isOverriden(using Context): Boolean =
684684
sym.is(Flags.Override) ||
685-
(if sym.exists then sym.owner.thisType.parents.exists(p => sym.matchingMember(p).exists) else false)
685+
(sym.exists && sym.owner.thisType.parents.exists(p => sym.matchingMember(p).exists))
686686

687687
end extension
688688

@@ -709,7 +709,11 @@ object CheckUnused:
709709

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

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

0 commit comments

Comments
 (0)