From 9963d3398cc5bbf78bd22cb89db9519130e1bb11 Mon Sep 17 00:00:00 2001 From: "Paolo G. Giarrusso" Date: Sun, 26 Aug 2018 18:32:16 +0200 Subject: [PATCH] Improve robustness of Namer for #5004 But this isn't a full fix and might be a bad idea. --- compiler/src/dotty/tools/dotc/typer/Namer.scala | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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