summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@typesafe.com>2014-12-23 10:06:50 -0800
committerAdriaan Moors <adriaan.moors@typesafe.com>2014-12-23 10:06:50 -0800
commit841389bc6f879031a8d36a5ffcca5e3c0e1fdcef (patch)
tree898ac7b039c94779f1e52a7d8d0ebaccf2537c01 /spec
parenta0b11b32aca74a4c3aee2e8c70356a29cd937727 (diff)
parent467872999e4940e06f2da811d1ae2d8278639126 (diff)
downloadscala-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.md13
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