From bfff7755701d00fb37e51106a9f48a452ddd0d9b Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Thu, 12 Mar 2020 15:59:20 +0100 Subject: [PATCH] Fix #8491: Generate correct default getter names --- compiler/src/dotty/tools/dotc/ast/Desugar.scala | 4 ++-- tests/pos/i8491.scala | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 tests/pos/i8491.scala diff --git a/compiler/src/dotty/tools/dotc/ast/Desugar.scala b/compiler/src/dotty/tools/dotc/ast/Desugar.scala index dae2bf353d49..91fe8f06daad 100644 --- a/compiler/src/dotty/tools/dotc/ast/Desugar.scala +++ b/compiler/src/dotty/tools/dotc/ast/Desugar.scala @@ -268,7 +268,7 @@ object desugar { Nil } - def normalizedVparamss = meth1.vparamss map (_ map (vparam => + def normalizedVparamss = meth1.vparamss.map(_.map(vparam => cpy.ValDef(vparam)(rhs = EmptyTree))) def defaultGetters(vparamss: List[List[ValDef]], n: Int): List[DefDef] = vparamss match { @@ -290,7 +290,7 @@ object desugar { Nil } - val defGetters = defaultGetters(vparamss, 0) + val defGetters = defaultGetters(meth1.vparamss, 0) if (defGetters.isEmpty) meth1 else { val meth2 = cpy.DefDef(meth1)(vparamss = normalizedVparamss) diff --git a/tests/pos/i8491.scala b/tests/pos/i8491.scala new file mode 100644 index 000000000000..9cc913467d38 --- /dev/null +++ b/tests/pos/i8491.scala @@ -0,0 +1,6 @@ +trait Foo[A]; trait Bar + +object Test { + def qux1[A](implicit A: Foo[A], B: Bar = new Bar {}): Bar = B + def qux2[A: Foo](implicit B: Bar = new Bar {}): Bar = B +} \ No newline at end of file