diff options
author | Martin Odersky <odersky@gmail.com> | 2013-12-17 15:52:58 +0100 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2013-12-17 15:52:58 +0100 |
commit | e3fdf97df2ce1ea7cd3a98cbdcce53789db1b3d3 (patch) | |
tree | b4b10516b51efb28301d696972d7db37a48d3a15 /src/dotty | |
parent | 87628400a73f9ed033fc2a29e494407234ae6f79 (diff) | |
download | dotty-e3fdf97df2ce1ea7cd3a98cbdcce53789db1b3d3.tar.gz dotty-e3fdf97df2ce1ea7cd3a98cbdcce53789db1b3d3.tar.bz2 dotty-e3fdf97df2ce1ea7cd3a98cbdcce53789db1b3d3.zip |
Bringing isFunctionType in line with isTupleType
Diffstat (limited to 'src/dotty')
-rw-r--r-- | src/dotty/tools/dotc/core/Definitions.scala | 9 |
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() |