aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/transform/FunctionalInterfaces.scala
diff options
context:
space:
mode:
authorDmitry Petrashko <dmitry.petrashko@gmail.com>2015-04-20 14:00:50 +0200
committerDmitry Petrashko <dmitry.petrashko@gmail.com>2015-04-20 14:01:52 +0200
commit5f31ce4633b76b610a397d587303dba1ce5a9b02 (patch)
tree93a2a8597493d822da50679c1d930a41c5451f08 /src/dotty/tools/dotc/transform/FunctionalInterfaces.scala
parentad57a507be0bba0014b3f2d8f39f8f77b1fe6fa8 (diff)
downloaddotty-5f31ce4633b76b610a397d587303dba1ce5a9b02.tar.gz
dotty-5f31ce4633b76b610a397d587303dba1ce5a9b02.tar.bz2
dotty-5f31ce4633b76b610a397d587303dba1ce5a9b02.zip
FunctionInterfaces: more specific filters for FunctionX signatures
Diffstat (limited to 'src/dotty/tools/dotc/transform/FunctionalInterfaces.scala')
-rw-r--r--src/dotty/tools/dotc/transform/FunctionalInterfaces.scala17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/dotty/tools/dotc/transform/FunctionalInterfaces.scala b/src/dotty/tools/dotc/transform/FunctionalInterfaces.scala
index 5f433d28d..cb8277b8c 100644
--- a/src/dotty/tools/dotc/transform/FunctionalInterfaces.scala
+++ b/src/dotty/tools/dotc/transform/FunctionalInterfaces.scala
@@ -39,8 +39,21 @@ class FunctionalInterfaces extends MiniPhaseTransform {
val functionPackage = "scala.compat.java8.".toTermName
override def prepareForUnit(tree: tpd.Tree)(implicit ctx: Context): TreeTransform = {
- allowedReturnTypes = defn.ScalaNumericValueClasses
- allowedArgumentTypes = defn.ScalaNumericValueClasses + defn.BooleanClass
+ allowedReturnTypes = Set(defn.UnitClass,
+ defn.BooleanClass,
+ defn.IntClass,
+ defn.FloatClass,
+ defn.LongClass,
+ defn.DoubleClass,
+ /* only for Function0: */ defn.ByteClass,
+ defn.ShortClass,
+ defn.CharClass)
+
+ allowedArgumentTypes = Set(defn.IntClass,
+ defn.LongClass,
+ defn.DoubleClass,
+ /* only for Function1: */ defn.FloatClass)
+
this
}