aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/ast/Desugar.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2014-09-25 15:06:59 +0200
committerDmitry Petrashko <dmitry.petrashko@gmail.com>2014-10-11 06:38:11 +0200
commitd936dec0c27d43dc861194594ecc22c4770450bd (patch)
tree89abb9304f18999b312a5359fa4a845e0ba2bbf4 /src/dotty/tools/dotc/ast/Desugar.scala
parenteb2e265e12d10aa28c63bbe99b2c4a4a79ee8869 (diff)
downloaddotty-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.scala3
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