diff --git a/compiler/src/dotty/tools/dotc/typer/Namer.scala b/compiler/src/dotty/tools/dotc/typer/Namer.scala index ed32410d2f74..8496a0f79aae 100644 --- a/compiler/src/dotty/tools/dotc/typer/Namer.scala +++ b/compiler/src/dotty/tools/dotc/typer/Namer.scala @@ -1158,8 +1158,9 @@ class Namer { typer: Typer => /** The type signature of a DefDef with given symbol */ def defDefSig(ddef: DefDef, sym: Symbol)(implicit ctx: Context) = { - val DefDef(name, tparams, vparamss, _, _) = ddef - val isConstructor = name == nme.CONSTRUCTOR + // Beware: ddef.name need not match sym.name if sym was freshened! + val DefDef(_, tparams, vparamss, _, _) = ddef + val isConstructor = sym.name == nme.CONSTRUCTOR // The following 3 lines replace what was previously just completeParams(tparams). // But that can cause bad bounds being computed, as witnessed by