File tree Expand file tree Collapse file tree 2 files changed +12
-2
lines changed
compiler/src/dotty/tools/dotc/typer Expand file tree Collapse file tree 2 files changed +12
-2
lines changed Original file line number Diff line number Diff line change @@ -1139,11 +1139,16 @@ class Namer { typer: Typer =>
11391139
11401140 def foreachDefaultGetterOf (sym : TermSymbol , op : TermSymbol => Unit ): Unit =
11411141 var n = 0
1142+ val methodName =
1143+ if sym.name == nme.apply && sym.is(Synthetic ) && sym.owner.companionClass.is(Case ) then
1144+ // The synthesized `apply` methods of case classes use the constructor's default getters
1145+ nme.CONSTRUCTOR
1146+ else sym.name
11421147 for params <- sym.paramSymss; param <- params do
11431148 if param.isTerm then
11441149 if param.is(HasDefault ) then
1145- val getterName = DefaultGetterName (sym.name , n)
1146- val getter = pathType.member(DefaultGetterName (sym.name, n) ).symbol
1150+ val getterName = DefaultGetterName (methodName , n)
1151+ val getter = pathType.member(getterName ).symbol
11471152 assert(getter.exists, i " $path does not have a default getter named $getterName" )
11481153 op(getter.asTerm)
11491154 n += 1
Original file line number Diff line number Diff line change 1+ case class Foo (x : Int = 0 )
2+
3+ extension (x : Any )
4+ private def foo = Foo
5+ export foo .apply
You can’t perform that action at this time.
0 commit comments