Skip to content

Commit 11727af

Browse files
Move special expansion cases in inlining methods
1 parent 5135b47 commit 11727af

File tree

1 file changed

+14
-9
lines changed

1 file changed

+14
-9
lines changed

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

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -506,12 +506,8 @@ object Inlines:
506506
overriddenDecls.contains(stat.symbol)
507507

508508
private def expandStat(stat: tpd.Tree, inlinedSym: Symbol): tpd.Tree = stat match
509-
case stat: ValDef if stat.symbol.is(ParamAccessor) =>
510-
tpd.ValDef(inlinedSym.asTerm, paramAccessorsValueOf(stat.symbol.name)).withSpan(parent.span)
511509
case stat: ValDef =>
512510
inlinedValDef(stat, inlinedSym)
513-
case stat: DefDef if stat.symbol.isSetter =>
514-
tpd.DefDef(inlinedSym.asTerm, unitLiteral).withSpan(parent.span)
515511
case stat: DefDef =>
516512
inlinedDefDef(stat, inlinedSym)
517513
case stat @ TypeDef(_, impl: Template) =>
@@ -542,13 +538,22 @@ object Inlines:
542538
}
543539

544540
private def inlinedValDef(vdef: ValDef, inlinedSym: Symbol)(using Context): ValDef =
545-
tpd.ValDef(inlinedSym.asTerm, inlinedRhs(vdef.rhs.changeOwner(vdef.symbol, inlinedSym))).withSpan(parent.span)
541+
val rhs =
542+
if vdef.symbol.is(ParamAccessor) then
543+
paramAccessorsValueOf(vdef.symbol.name)
544+
else
545+
inlinedRhs(vdef.rhs.changeOwner(vdef.symbol, inlinedSym))
546+
tpd.ValDef(inlinedSym.asTerm, rhs).withSpan(parent.span)
546547

547548
private def inlinedDefDef(ddef: DefDef, inlinedSym: Symbol)(using Context): DefDef =
548-
def rhsFun(paramss: List[List[Tree]]): Tree =
549-
val oldParamSyms = ddef.paramss.flatten.map(_.symbol)
550-
val newParamSyms = paramss.flatten.map(_.symbol)
551-
inlinedRhs(ddef.rhs.subst(oldParamSyms, newParamSyms).changeOwner(ddef.symbol, inlinedSym))
549+
val rhsFun: List[List[Tree]] => Tree =
550+
if ddef.symbol.isSetter then
551+
_ => unitLiteral
552+
else
553+
paramss =>
554+
val oldParamSyms = ddef.paramss.flatten.map(_.symbol)
555+
val newParamSyms = paramss.flatten.map(_.symbol)
556+
inlinedRhs(ddef.rhs.subst(oldParamSyms, newParamSyms).changeOwner(ddef.symbol, inlinedSym))
552557
tpd.DefDef(inlinedSym.asTerm, rhsFun).withSpan(parent.span)
553558

554559
private def inlinedPrimaryConstructorDefDef(ddef: DefDef)(using Context): DefDef =

0 commit comments

Comments
 (0)