diff options
author | Adriaan Moors <adriaan.moors@typesafe.com> | 2014-12-23 10:06:50 -0800 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@typesafe.com> | 2014-12-23 10:06:50 -0800 |
commit | 841389bc6f879031a8d36a5ffcca5e3c0e1fdcef (patch) | |
tree | 898ac7b039c94779f1e52a7d8d0ebaccf2537c01 /spec | |
parent | a0b11b32aca74a4c3aee2e8c70356a29cd937727 (diff) | |
parent | 467872999e4940e06f2da811d1ae2d8278639126 (diff) | |
download | scala-841389bc6f879031a8d36a5ffcca5e3c0e1fdcef.tar.gz scala-841389bc6f879031a8d36a5ffcca5e3c0e1fdcef.tar.bz2 scala-841389bc6f879031a8d36a5ffcca5e3c0e1fdcef.zip |
Merge pull request #4139 from retronym/ticket/7965
SI-7965 Support calls to MethodHandle.{invoke,invokeExact}
Diffstat (limited to 'spec')
-rw-r--r-- | spec/06-expressions.md | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/spec/06-expressions.md b/spec/06-expressions.md index afd1492744..5038ebb34d 100644 --- a/spec/06-expressions.md +++ b/spec/06-expressions.md @@ -410,6 +410,19 @@ The final result of the transformation is a block of the form } ``` +### Signature Polymorphic Methods + +For invocations of signature polymorphic methods of the target platform `$f$($e_1 , \ldots , e_m$)`, +the invoked function has a different method type `($p_1$:$T_1 , \ldots , p_n$:$T_n$)$U$` at each call +site. The parameter types `$T_ , \ldots , T_n$` are the types of the argument expressions +`$e_1 , \ldots , e_m$` and `$U$` is the expected type at the call site. If the expected type is +undefined then `$U$` is `scala.AnyRef`. The parameter names `$p_1 , \ldots , p_n$` are fresh. + +###### Note + +On the Java platform version 7 and later, the methods `invoke` and `invokeExact` in class +`java.lang.invoke.MethodHandle` are signature polymorphic. + ## Method Values ```ebnf |