aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/Definitions.scala
diff options
context:
space:
mode:
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()