diff options
author | Guillaume Martres <smarter@ubuntu.com> | 2015-03-18 23:54:52 +0100 |
---|---|---|
committer | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2015-05-01 13:26:22 +0200 |
commit | 57c893e5ddb2c976ae2e6098b06a3ec854996504 (patch) | |
tree | 042272d62d3f4a5fb4685f5f8bd4908bc9bedaaf /src | |
parent | 00b4fceb8e15f816b517226bd4b1c609d03e5aa6 (diff) | |
download | dotty-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')
-rw-r--r-- | src/dotty/tools/dotc/transform/ExtensionMethods.scala | 3 |
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 => |