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 @@ -1139,11 +1139,16 @@ class Namer { typer: Typer =>
1139
1139
1140
1140
def foreachDefaultGetterOf (sym : TermSymbol , op : TermSymbol => Unit ): Unit =
1141
1141
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
1142
1147
for params <- sym.paramSymss; param <- params do
1143
1148
if param.isTerm then
1144
1149
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
1147
1152
assert(getter.exists, i " $path does not have a default getter named $getterName" )
1148
1153
op(getter.asTerm)
1149
1154
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