From 57c893e5ddb2c976ae2e6098b06a3ec854996504 Mon Sep 17 00:00:00 2001 From: Guillaume Martres Date: Wed, 18 Mar 2015 23:54:52 +0100 Subject: Don't create extension methods for Scala2x value classes Fixes #387 --- src/dotty/tools/dotc/transform/ExtensionMethods.scala | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/dotty/tools/dotc/transform/ExtensionMethods.scala b/src/dotty/tools/dotc/transform/ExtensionMethods.scala index 787d68430..e6260bde2 100644 --- a/src/dotty/tools/dotc/transform/ExtensionMethods.scala +++ b/src/dotty/tools/dotc/transform/ExtensionMethods.scala @@ -36,7 +36,8 @@ class ExtensionMethods extends MiniPhaseTransform with DenotTransformer with Ful override def transform(ref: SingleDenotation)(implicit ctx: Context): SingleDenotation = ref match { case ref: ClassDenotation if ref is ModuleClass => ref.linkedClass match { - case origClass: ClassSymbol if isDerivedValueClass(origClass) => + // In Scala 2, extension methods are added before pickling so we should not generate them again + case origClass: ClassSymbol if isDerivedValueClass(origClass) && !(origClass is Scala2x) => val cinfo = ref.classInfo val decls1 = cinfo.decls.cloneScope ctx.atPhase(thisTransformer.next) { implicit ctx => -- cgit v1.2.3