diff options
author | Martin Odersky <odersky@gmail.com> | 2014-09-25 15:06:59 +0200 |
---|---|---|
committer | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2014-10-11 06:38:11 +0200 |
commit | d936dec0c27d43dc861194594ecc22c4770450bd (patch) | |
tree | 89abb9304f18999b312a5359fa4a845e0ba2bbf4 /src/dotty/tools/dotc/ast/Desugar.scala | |
parent | eb2e265e12d10aa28c63bbe99b2c4a4a79ee8869 (diff) | |
download | dotty-d936dec0c27d43dc861194594ecc22c4770450bd.tar.gz dotty-d936dec0c27d43dc861194594ecc22c4770450bd.tar.bz2 dotty-d936dec0c27d43dc861194594ecc22c4770450bd.zip |
Make productArity a synthetic method which can be overridden
Like other synthetic methods, productArity will not be generated
if an explicit definition is given. Used to be generated unconditionally
in desugaring.
Diffstat (limited to 'src/dotty/tools/dotc/ast/Desugar.scala')
-rw-r--r-- | src/dotty/tools/dotc/ast/Desugar.scala | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/src/dotty/tools/dotc/ast/Desugar.scala b/src/dotty/tools/dotc/ast/Desugar.scala index 9f37326f6..e2152066f 100644 --- a/src/dotty/tools/dotc/ast/Desugar.scala +++ b/src/dotty/tools/dotc/ast/Desugar.scala @@ -287,7 +287,6 @@ object desugar { def syntheticProperty(name: TermName, rhs: Tree) = DefDef(synthetic, name, Nil, Nil, TypeTree(), rhs) val isDefinedMeth = syntheticProperty(nme.isDefined, Literal(Constant(true))) - val productArityMeth = syntheticProperty(nme.productArity, Literal(Constant(arity))) val caseParams = constrVparamss.head.toArray val productElemMeths = for (i <- 0 until arity) yield syntheticProperty(nme.selectorName(i), Select(This(EmptyTypeName), caseParams(i).name)) @@ -302,7 +301,7 @@ object desugar { cpy.ValDef(vparam)(rhs = EmptyTree)) DefDef(synthetic, nme.copy, derivedTparams, copyFirstParams :: copyRestParamss, TypeTree(), creatorExpr) :: Nil } - copyMeths ::: isDefinedMeth :: productArityMeth :: productElemMeths.toList + copyMeths ::: isDefinedMeth :: productElemMeths.toList } else Nil |