File tree 2 files changed +12
-2
lines changed
compiler/src/dotty/tools/dotc/typer
2 files changed +12
-2
lines changed Original file line number Diff line number Diff line change @@ -1137,11 +1137,16 @@ class Namer { typer: Typer =>
1137
1137
1138
1138
def foreachDefaultGetterOf (sym : TermSymbol , op : TermSymbol => Unit ): Unit =
1139
1139
var n = 0
1140
+ val methodName =
1141
+ if sym.name == nme.apply && sym.is(Synthetic ) && sym.owner.companionClass.is(Case ) then
1142
+ // The synthesized `apply` methods of case classes use the constructor's default getters
1143
+ nme.CONSTRUCTOR
1144
+ else sym.name
1140
1145
for params <- sym.paramSymss; param <- params do
1141
1146
if param.isTerm then
1142
1147
if param.is(HasDefault ) then
1143
- val getterName = DefaultGetterName (sym.name , n)
1144
- val getter = pathType.member(DefaultGetterName (sym.name, n) ).symbol
1148
+ val getterName = DefaultGetterName (methodName , n)
1149
+ val getter = pathType.member(getterName ).symbol
1145
1150
assert(getter.exists, i " $path does not have a default getter named $getterName" )
1146
1151
op(getter.asTerm)
1147
1152
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