diff options
author | Martin Odersky <odersky@gmail.com> | 2016-02-25 17:12:20 +0100 |
---|---|---|
committer | Sébastien Doeraene <sjrdoeraene@gmail.com> | 2016-03-01 15:47:55 +0100 |
commit | b347d2725d1a4e5f66d798be79d3fc3f0f44ea88 (patch) | |
tree | 2d56ad1e9064eb8aa82fa1377784c03f8d6f16cc /src | |
parent | 0ae3ef2010b90bf06d76a768b0f0c5aa56c1180a (diff) | |
download | dotty-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.scala | 12 |
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 +} |