diff options
author | Paul Phillips <paulp@improving.org> | 2013-12-17 14:20:49 -0800 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2013-12-17 14:41:42 -0800 |
commit | a1c00ae4b2df051c33384269b6b983746e537aee (patch) | |
tree | 912f47b790250c6d28e6cc7c9a101328190e1753 /test/files/pos/dotless-targs.scala | |
parent | b5ef79f2f8bc010220d2920a890352d96ad84b45 (diff) | |
download | scala-a1c00ae4b2df051c33384269b6b983746e537aee.tar.gz scala-a1c00ae4b2df051c33384269b6b983746e537aee.tar.bz2 scala-a1c00ae4b2df051c33384269b6b983746e537aee.zip |
Dotless type application for infix operators.
When you have an aesthetic expresion like
def f(xs: Iterator[Int]) = (
xs takeWhile (_ < 1000)
map (_ * -1)
filter (_ % 2 == 0)
flatMap (x => List(x, x))
reduceOption (_ + _)
maxBy (_.toString)
)
And then for whatever reason you have to perform explicit
type application in the midst of that expression, it's
aggravating in the extreme that it has (had) to be rewritten
in its entirety to accommodate that change.
So now you can perform type application in the middle of it.
For reasons not entirely clear to me postfix operators are
excluded. The discussion as well as the approval for the infix
variation of it can be found at:
https://groups.google.com/forum/#!msg/scala-language/eJl1wnkEz9M/hR984-lqC5EJ
Diffstat (limited to 'test/files/pos/dotless-targs.scala')
-rw-r--r-- | test/files/pos/dotless-targs.scala | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/test/files/pos/dotless-targs.scala b/test/files/pos/dotless-targs.scala new file mode 100644 index 0000000000..8c0e244e4e --- /dev/null +++ b/test/files/pos/dotless-targs.scala @@ -0,0 +1,9 @@ +class A { + def fn1 = List apply 1 + def fn2 = List apply[Int] 2 + + def g1: Char = "g1" toList 0 + def g2: Char = "g2" apply 1 + + def h1 = List apply[List[Int]] (List(1), List(2)) mapConserve[List[Any]] (x => x) +} |