Skip to content

Commit ae82716

Browse files
committed
Fix outerSelect in Inliner
Fixes #20300
1 parent 084ab1a commit ae82716

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

compiler/src/dotty/tools/dotc/inlines/Inliner.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,7 @@ class Inliner(val call: tpd.Tree)(using Context):
315315
case Super(qual, _) => qual
316316
case pre => pre
317317
val preLevel = classNestingLevel(inlinedMethod.owner)
318-
if preLevel > level then outerSelect(pre, inlinedMethod.owner, preLevel - level, selfSym.info)
318+
if preLevel > level then outerSelect(pre, inlinedMethod.owner.enclosingClass, preLevel - level, selfSym.info)
319319
else pre
320320

321321
val binding = accountForOpaques(

tests/pos/i20300.scala

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
trait T:
2+
3+
def v() = ()
4+
5+
trait F:
6+
def f(): Unit =
7+
inline def op(): Unit = v()
8+
op()

0 commit comments

Comments
 (0)