aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2016-02-25 17:12:20 +0100
committerSébastien Doeraene <sjrdoeraene@gmail.com>2016-03-01 15:47:55 +0100
commitb347d2725d1a4e5f66d798be79d3fc3f0f44ea88 (patch)
tree2d56ad1e9064eb8aa82fa1377784c03f8d6f16cc /src
parent0ae3ef2010b90bf06d76a768b0f0c5aa56c1180a (diff)
downloaddotty-b347d2725d1a4e5f66d798be79d3fc3f0f44ea88.tar.gz
dotty-b347d2725d1a4e5f66d798be79d3fc3f0f44ea88.tar.bz2
dotty-b347d2725d1a4e5f66d798be79d3fc3f0f44ea88.zip
In LinkScala2ImplClass, disregard signatures when looking for constructor.
Dotty treats trait and class constructors as returning the class. But scalac uses Unit for the return type of trait init methods.
Diffstat (limited to 'src')
-rw-r--r--src/dotty/tools/dotc/transform/LinkScala2ImplClasses.scala12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/dotty/tools/dotc/transform/LinkScala2ImplClasses.scala b/src/dotty/tools/dotc/transform/LinkScala2ImplClasses.scala
index 60e8edc26..ca06938dc 100644
--- a/src/dotty/tools/dotc/transform/LinkScala2ImplClasses.scala
+++ b/src/dotty/tools/dotc/transform/LinkScala2ImplClasses.scala
@@ -48,11 +48,15 @@ class LinkScala2ImplClasses extends MiniPhaseTransform with IdentityDenotTransfo
}
}
- private def implMethod(meth: Symbol)(implicit ctx: Context): Symbol =
- meth.owner.implClass.info
- .decl(if (meth.isConstructor) nme.TRAIT_CONSTRUCTOR else meth.name)
+ private def implMethod(meth: Symbol)(implicit ctx: Context): Symbol = {
+ val implInfo = meth.owner.implClass.info
+ if (meth.isConstructor)
+ implInfo.decl(nme.TRAIT_CONSTRUCTOR).symbol
+ else
+ implInfo.decl(meth.name)
.suchThat(c => FullParameterization.memberSignature(c.info) == meth.signature)
.symbol
+ }
private val Scala2xTrait = allOf(Scala2x, Trait)
-} \ No newline at end of file
+}