diff options
author | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-10-08 19:00:48 -0700 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-10-08 23:07:36 -0700 |
commit | 58ba39ce851460c18f2f81341a8c80e0e51d2764 (patch) | |
tree | 3cad6ec64abb2089c32425bd40b2ad3a679bfee2 /test/files/run/sammy_java8.scala | |
parent | 4265ab6345d7e84e36dc1444fdbbba3643b29b35 (diff) | |
download | scala-58ba39ce851460c18f2f81341a8c80e0e51d2764.tar.gz scala-58ba39ce851460c18f2f81341a8c80e0e51d2764.tar.bz2 scala-58ba39ce851460c18f2f81341a8c80e0e51d2764.zip |
Single Abstract Method support: java8 test
Inspired by test/files/run/t7398.scala and sammy_poly.
Added some notes to original tests.
Elaborating on that note: we don't yet desugar `f(a)` to `f.sam(a)`,
like we do for regular functions: `f(a)` becomes `f.apply(a)`.
It seems pleasingly symmetrical and is easy to implement,
but not sure it's a good idea...
Diffstat (limited to 'test/files/run/sammy_java8.scala')
-rw-r--r-- | test/files/run/sammy_java8.scala | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/test/files/run/sammy_java8.scala b/test/files/run/sammy_java8.scala new file mode 100644 index 0000000000..db9df7f5fe --- /dev/null +++ b/test/files/run/sammy_java8.scala @@ -0,0 +1,34 @@ +import scala.tools.partest._ + +// java8 version of sammy_poly.scala +object Test extends CompilerTest { + import global._ + + override lazy val units: List[CompilationUnit] = { + global.settings.Xexperimental.value = true + + // This test itself does not depend on JDK8. + javaCompilationUnits(global)(samSource) ++ + compilationUnits(global)(useSamSource) + } + + private def samSource = """ +// trait F[T, U] { def apply(x: T): U } +public interface F<T, U> { + U apply(T t); + default void yadayada() { + throw new UnsupportedOperationException("yadayada"); + } +} + """ + + private def useSamSource = """ +class T { + def app[T, U](x: T)(f: F[T, U]): U = f(x) + app(1)(x => List(x)) +} + """ + + // We're only checking we can compile it. + def check(source: String, unit: global.CompilationUnit): Unit = () +} |