aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/dotty/tools/dotc/core')
-rw-r--r--src/dotty/tools/dotc/core/Definitions.scala3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/dotty/tools/dotc/core/Definitions.scala b/src/dotty/tools/dotc/core/Definitions.scala
index ebd99ad6c..96e4f0138 100644
--- a/src/dotty/tools/dotc/core/Definitions.scala
+++ b/src/dotty/tools/dotc/core/Definitions.scala
@@ -318,6 +318,9 @@ class Definitions(implicit ctx: Context) {
arity <= MaxTupleArity && (tp isRef TupleClass(arity))
}
+ def isProductSubType(tp: Type) =
+ (tp derivesFrom ProductClass) && tp.baseClasses.exists(ProductClasses contains _)
+
def isFunctionType(tp: Type) = {
val arity = tp.dealias.typeArgs.length - 1
0 <= arity && arity <= MaxFunctionArity && (tp isRef FunctionClass(arity))