Skip to content

Commit 439fdf7

Browse files
authored
Merge pull request #8614 from dotty-staging/fix-#8598
Fix #8598: Refinements cannot have default arguments
2 parents 5ade75b + b12ffaa commit 439fdf7

File tree

2 files changed

+3
-0
lines changed

2 files changed

+3
-0
lines changed

compiler/src/dotty/tools/dotc/parsing/Parsers.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3771,6 +3771,8 @@ object Parsers {
37713771
val problem = tree match
37723772
case tree: MemberDef if !(tree.mods.flags & ModifierFlags).isEmpty =>
37733773
i"refinement cannot be ${(tree.mods.flags & ModifierFlags).flagStrings().mkString("`", "`, `", "`")}"
3774+
case tree: DefDef if tree.vparamss.exists(_.exists(!_.rhs.isEmpty)) =>
3775+
i"refinement cannot have default arguments"
37743776
case tree: ValOrDefDef =>
37753777
if tree.rhs.isEmpty then ""
37763778
else "refinement in cannot have a right-hand side"
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
def foo[T <: AnyRef { def bar(a: Int = 0): Unit }](t: T): Unit = t.bar // error // error

0 commit comments

Comments
 (0)