aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/Definitions.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2013-12-17 15:52:58 +0100
committerMartin Odersky <odersky@gmail.com>2013-12-17 15:52:58 +0100
commite3fdf97df2ce1ea7cd3a98cbdcce53789db1b3d3 (patch)
treeb4b10516b51efb28301d696972d7db37a48d3a15 /src/dotty/tools/dotc/core/Definitions.scala
parent87628400a73f9ed033fc2a29e494407234ae6f79 (diff)
downloaddotty-e3fdf97df2ce1ea7cd3a98cbdcce53789db1b3d3.tar.gz
dotty-e3fdf97df2ce1ea7cd3a98cbdcce53789db1b3d3.tar.bz2
dotty-e3fdf97df2ce1ea7cd3a98cbdcce53789db1b3d3.zip
Bringing isFunctionType in line with isTupleType
Diffstat (limited to 'src/dotty/tools/dotc/core/Definitions.scala')
-rw-r--r--src/dotty/tools/dotc/core/Definitions.scala9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/dotty/tools/dotc/core/Definitions.scala b/src/dotty/tools/dotc/core/Definitions.scala
index 49e038a1e..ebd99ad6c 100644
--- a/src/dotty/tools/dotc/core/Definitions.scala
+++ b/src/dotty/tools/dotc/core/Definitions.scala
@@ -288,8 +288,6 @@ class Definitions(implicit ctx: Context) {
}
}
- def isFunctionType(tp: Type) = FunctionClasses contains tp.typeSymbol
-
// ----- Symbol sets ---------------------------------------------------
lazy val FunctionClass = mkArityArray("Function", MaxFunctionArity, 0)
@@ -320,7 +318,12 @@ class Definitions(implicit ctx: Context) {
arity <= MaxTupleArity && (tp isRef TupleClass(arity))
}
- // ----- Higher kinds machinery ------------------------------------------
+ def isFunctionType(tp: Type) = {
+ val arity = tp.dealias.typeArgs.length - 1
+ 0 <= arity && arity <= MaxFunctionArity && (tp isRef FunctionClass(arity))
+ }
+
+ // ----- Higher kinds machinery ------------------------------------------
private var _hkTraits: Set[Symbol] = Set()