diff options
author | Martin Odersky <odersky@gmail.com> | 2015-12-19 22:31:00 +0100 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2015-12-19 22:31:00 +0100 |
commit | ded374a5229a17c5c6dc04e50044d62422dc1023 (patch) | |
tree | 1574102796d22955052d14cc6a138ad5910e812c /src | |
parent | 05bc8a088a9ecabaa9d7424d51c8f4f218d0fd74 (diff) | |
download | dotty-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.scala | 3 |
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 |