aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2015-12-19 22:31:00 +0100
committerMartin Odersky <odersky@gmail.com>2015-12-19 22:31:00 +0100
commitded374a5229a17c5c6dc04e50044d62422dc1023 (patch)
tree1574102796d22955052d14cc6a138ad5910e812c /src
parent05bc8a088a9ecabaa9d7424d51c8f4f218d0fd74 (diff)
downloaddotty-ded374a5229a17c5c6dc04e50044d62422dc1023.tar.gz
dotty-ded374a5229a17c5c6dc04e50044d62422dc1023.tar.bz2
dotty-ded374a5229a17c5c6dc04e50044d62422dc1023.zip
Fix eta expansion
revios fix crashed for nullary functions
Diffstat (limited to 'src')
-rw-r--r--src/dotty/tools/dotc/typer/EtaExpansion.scala3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/typer/EtaExpansion.scala b/src/dotty/tools/dotc/typer/EtaExpansion.scala
index 42fcd94a4..aa210e6ed 100644
--- a/src/dotty/tools/dotc/typer/EtaExpansion.scala
+++ b/src/dotty/tools/dotc/typer/EtaExpansion.scala
@@ -142,7 +142,8 @@ object EtaExpansion {
val params = (mt.paramNames, paramTypes).zipped.map((name, tpe) =>
ValDef(name, TypeTree(tpe), EmptyTree).withFlags(Synthetic | Param).withPos(tree.pos))
var ids: List[Tree] = mt.paramNames map (name => Ident(name).withPos(tree.pos))
- if (mt.paramTypes.last.isRepeatedParam)ids = ids.init :+ repeated(ids.last)
+ if (mt.paramTypes.nonEmpty && mt.paramTypes.last.isRepeatedParam)
+ ids = ids.init :+ repeated(ids.last)
val body = Apply(lifted, ids)
val fn = untpd.Function(params, body)
if (defs.nonEmpty) untpd.Block(defs.toList map untpd.TypedSplice, fn) else fn