diff options
author | Martin Odersky <odersky@gmail.com> | 2016-11-30 14:34:17 +0100 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2016-11-30 14:34:17 +0100 |
commit | b94e6ea5a54d38470e5793c0084785e2d2f9a819 (patch) | |
tree | 6a3f4e83dbf66ad9a2353d4165f6321fede1dceb /tests/pos/lazyValsSepComp.scala | |
parent | 3116142d3e0e2d560b2fa79f73e699e1ac000204 (diff) | |
download | dotty-b94e6ea5a54d38470e5793c0084785e2d2f9a819.tar.gz dotty-b94e6ea5a54d38470e5793c0084785e2d2f9a819.tar.bz2 dotty-b94e6ea5a54d38470e5793c0084785e2d2f9a819.zip |
Drop function 22 limit.
Functions with more than 22 parameters are now
automatically converted to functions taking
a single object array parameter.
This has been achieved by tweaking erasure.
Other things I have tried that did ot work out well:
- Use a single function type in typer. The problem with this
one which could not be circumvented was that existing higher-kinded
code with e.g. Funcor assumes that Functon1 is a binary type constructor.
- Have a late phase that converts to FunctonXXL instead of
doing it in erasure. The problem with that one was that
potentially every type could be affected, which was ill-suited
to the architecture of a miniphase.
Diffstat (limited to 'tests/pos/lazyValsSepComp.scala')
-rw-r--r-- | tests/pos/lazyValsSepComp.scala | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/tests/pos/lazyValsSepComp.scala b/tests/pos/lazyValsSepComp.scala index 1a7e37020..048231eb0 100644 --- a/tests/pos/lazyValsSepComp.scala +++ b/tests/pos/lazyValsSepComp.scala @@ -12,5 +12,5 @@ import dotty.tools.dotc.core.Contexts._ object Foo { val definitions: Definitions = null def defn = definitions - def go = defn.FunctionType(0) + def go = defn.FunctionClassPerRun } |