Skip to content
This repository was archived by the owner on Sep 1, 2020. It is now read-only.

Commit 57967c9

Browse files
committed
Fix 4812
Remove default arguments from parameter ValDefs in UnCurry.
1 parent 5b9bf3d commit 57967c9

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

src/compiler/scala/tools/nsc/transform/UnCurry.scala

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -568,7 +568,12 @@ abstract class UnCurry extends InfoTransform
568568
if ((sym ne null) && (sym.elisionLevel.exists (_ < settings.elidebelow.value || settings.noassertions.value)))
569569
replaceElidableTree(tree)
570570
else translateSynchronized(tree) match {
571-
case dd @ DefDef(mods, name, tparams, vparamss, tpt, rhs) =>
571+
case dd @ DefDef(mods, name, tparams, _, tpt, rhs) =>
572+
// Remove default argument trees from parameter ValDefs, SI-4812
573+
val vparamssNoRhs = dd.vparamss mapConserve (_ mapConserve {p =>
574+
treeCopy.ValDef(p, p.mods, p.name, p.tpt, EmptyTree)
575+
})
576+
572577
if (dd.symbol hasAnnotation VarargsClass) saveRepeatedParams(dd)
573578

574579
withNeedLift(false) {
@@ -586,10 +591,10 @@ abstract class UnCurry extends InfoTransform
586591
}
587592
treeCopy.DefDef(
588593
dd, mods, name, transformTypeDefs(tparams),
589-
transformValDefss(vparamss), transform(tpt), rhs1)
594+
transformValDefss(vparamssNoRhs), transform(tpt), rhs1)
590595
}
591596
} else {
592-
super.transform(dd)
597+
super.transform(treeCopy.DefDef(dd, mods, name, tparams, vparamssNoRhs, tpt, rhs))
593598
}
594599
}
595600
case ValDef(_, _, _, rhs) =>

test/files/pos/t4812.scala

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
trait Test1 {
2+
def m1(sym: Symbol = 'TestSym)
3+
def m2(s: String = "TestString")
4+
}

0 commit comments

Comments
 (0)