Skip to content

Commit d0d9ff8

Browse files
committed
Take the high bound in extension check
1 parent 11ecbfb commit d0d9ff8

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

compiler/src/dotty/tools/dotc/typer/RefChecks.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1180,7 +1180,7 @@ object RefChecks {
11801180
def targetOfHiddenExtension: Symbol =
11811181
val target =
11821182
val target0 = explicitInfo.firstParamTypes.head // required for extension method, the putative receiver
1183-
target0.dealiasKeepOpaques.typeSymbol.info
1183+
target0.dealiasKeepOpaques.typeSymbol.info.hiBound
11841184
val member = target.nonPrivateMember(sym.name)
11851185
.filterWithPredicate: member =>
11861186
member.symbol.isPublic && memberHidesMethod(member)

tests/warn/i23293.scala

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
2+
trait SelectByName[Field <: String & Singleton, Rec <: Tuple]:
3+
type Out
4+
extension (r: Rec) def apply[F <: Field]: Out // warn not crash

0 commit comments

Comments
 (0)