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.scala16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/dotty/tools/dotc/core/Definitions.scala b/src/dotty/tools/dotc/core/Definitions.scala
index 4556dd9d5..5f794f2d5 100644
--- a/src/dotty/tools/dotc/core/Definitions.scala
+++ b/src/dotty/tools/dotc/core/Definitions.scala
@@ -588,6 +588,12 @@ class Definitions {
name.startsWith(prefix) && name.drop(prefix.length).forall(_.isDigit)
}
+ def isBottomClass(cls: Symbol) = cls == NothingClass || cls == NullClass
+ def isBottomType(tp: Type) = tp match {
+ case tp: TypeRef => isBottomClass(tp.symbol)
+ case _ => false
+ }
+
def isFunctionClass(cls: Symbol) = isVarArityClass(cls, tpnme.Function)
def isAbstractFunctionClass(cls: Symbol) = isVarArityClass(cls, tpnme.AbstractFunction)
def isTupleClass(cls: Symbol) = isVarArityClass(cls, tpnme.Tuple)
@@ -642,9 +648,9 @@ class Definitions {
* to be the type parameters of a higher-kided type). This is a class symbol that
* would be generated by the following schema.
*
- * class LambdaXYZ extends Object with P1 with ... with Pn {
- * type v_1 $hk$Arg0; ...; type v_N $hk$ArgN;
- * type Apply
+ * trait LambdaXYZ extends Object with P1 with ... with Pn {
+ * type v_1 hk$0; ...; type v_N hk$N;
+ * type +$Apply
* }
*
* Here:
@@ -669,7 +675,7 @@ class Definitions {
val cls = denot.asClass.classSymbol
val paramDecls = newScope
for (i <- 0 until vcs.length)
- newTypeParam(cls, tpnme.LambdaArgName(i), varianceFlags(vcs(i)), paramDecls)
+ newTypeParam(cls, tpnme.hkArg(i), varianceFlags(vcs(i)), paramDecls)
newTypeField(cls, tpnme.hkApply, Covariant, paramDecls)
val parentTraitRefs =
for (i <- 0 until vcs.length if vcs(i) != 0)
@@ -679,7 +685,7 @@ class Definitions {
}
}
- val traitName = tpnme.LambdaTraitName(vcs)
+ val traitName = tpnme.hkLambda(vcs)
def createTrait = {
val cls = newClassSymbol(