aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/ast/Desugar.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2015-04-24 18:04:09 +0200
committerMartin Odersky <odersky@gmail.com>2015-04-24 18:04:09 +0200
commit6a3aab8241cc5379bcffb7644bdbaa04ba12ce5b (patch)
tree80d4fa10baf4b1530963b2366fa4c420e68adeb4 /src/dotty/tools/dotc/ast/Desugar.scala
parent1e9c012a0c61b2031ecaf11de3f2e99a5fdff7af (diff)
downloaddotty-6a3aab8241cc5379bcffb7644bdbaa04ba12ce5b.tar.gz
dotty-6a3aab8241cc5379bcffb7644bdbaa04ba12ce5b.tar.bz2
dotty-6a3aab8241cc5379bcffb7644bdbaa04ba12ce5b.zip
Allow byname repated parameters
Implements #499
Diffstat (limited to 'src/dotty/tools/dotc/ast/Desugar.scala')
-rw-r--r--src/dotty/tools/dotc/ast/Desugar.scala7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/ast/Desugar.scala b/src/dotty/tools/dotc/ast/Desugar.scala
index 0c13d1ecc..f7904abc0 100644
--- a/src/dotty/tools/dotc/ast/Desugar.scala
+++ b/src/dotty/tools/dotc/ast/Desugar.scala
@@ -289,8 +289,13 @@ object desugar {
val caseParams = constrVparamss.head.toArray
val productElemMeths = for (i <- 0 until arity) yield
syntheticProperty(nme.selectorName(i), Select(This(EmptyTypeName), caseParams(i).name))
+ def isRepeated(tree: Tree): Boolean = tree match {
+ case PostfixOp(_, nme.raw.STAR) => true
+ case ByNameTypeTree(tree1) => isRepeated(tree1)
+ case _ => false
+ }
val hasRepeatedParam = constrVparamss.exists(_.exists {
- case ValDef(_, PostfixOp(_, nme.raw.STAR), _) => true
+ case ValDef(_, tpt, _) => isRepeated(tpt)
case _ => false
})
val copyMeths =