aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/transform/ExtensionMethods.scala
diff options
context:
space:
mode:
authorGuillaume Martres <smarter@ubuntu.com>2015-03-18 23:54:52 +0100
committerDmitry Petrashko <dmitry.petrashko@gmail.com>2015-05-01 13:26:22 +0200
commit57c893e5ddb2c976ae2e6098b06a3ec854996504 (patch)
tree042272d62d3f4a5fb4685f5f8bd4908bc9bedaaf /src/dotty/tools/dotc/transform/ExtensionMethods.scala
parent00b4fceb8e15f816b517226bd4b1c609d03e5aa6 (diff)
downloaddotty-57c893e5ddb2c976ae2e6098b06a3ec854996504.tar.gz
dotty-57c893e5ddb2c976ae2e6098b06a3ec854996504.tar.bz2
dotty-57c893e5ddb2c976ae2e6098b06a3ec854996504.zip
Don't create extension methods for Scala2x value classes
Fixes #387
Diffstat (limited to 'src/dotty/tools/dotc/transform/ExtensionMethods.scala')
-rw-r--r--src/dotty/tools/dotc/transform/ExtensionMethods.scala3
1 files changed, 2 insertions, 1 deletions
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 =>