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