@@ -589,6 +589,9 @@ object Types {
589
589
*/
590
590
trait SingletonType extends TypeProxy
591
591
592
+ /** A marker trait for types that apply only to type symbols */
593
+ trait TypeType extends Type
594
+
592
595
// --- NamedTypes ------------------------------------------------------------------
593
596
594
597
/** A NamedType of the form Prefix # name
@@ -964,7 +967,7 @@ object Types {
964
967
965
968
// ------ ClassInfo, Type Bounds ------------------------------------------------------------
966
969
967
- abstract case class ClassInfo (prefix : Type , classd : ClassDenotation ) extends CachedGroundType {
970
+ abstract case class ClassInfo (prefix : Type , classd : ClassDenotation ) extends CachedGroundType with TypeType {
968
971
969
972
/* def typeTemplate(implicit ctx: Context): Type =
970
973
classd.typeTemplate asSeenFrom (prefix, classd.symbol)
@@ -991,7 +994,7 @@ object Types {
991
994
unique(new CachedClassInfo (prefix, classd))
992
995
}
993
996
994
- abstract case class TypeBounds (lo : Type , hi : Type ) extends CachedProxyType {
997
+ abstract case class TypeBounds (lo : Type , hi : Type ) extends CachedProxyType with TypeType {
995
998
override def underlying (implicit ctx : Context ): Type = hi
996
999
def derivedTypeBounds (lo1 : Type , hi1 : Type )(implicit ctx : Context ) =
997
1000
if ((lo1 eq lo) && (hi1 eq hi)) this
0 commit comments