aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/Flags.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2013-10-07 09:22:59 +0200
committerMartin Odersky <odersky@gmail.com>2013-10-07 10:01:07 +0200
commit16c1ddd3bb86c61890418b8394d44486e7bbd9dd (patch)
tree0ae37c424eb5b1860b3f8662119d380cb5c3d3d4 /src/dotty/tools/dotc/core/Flags.scala
parent9a28428f48e9a8ef8e4ef8f35260a10842736624 (diff)
downloaddotty-16c1ddd3bb86c61890418b8394d44486e7bbd9dd.tar.gz
dotty-16c1ddd3bb86c61890418b8394d44486e7bbd9dd.tar.bz2
dotty-16c1ddd3bb86c61890418b8394d44486e7bbd9dd.zip
flags for instances
and changes flags for type params
Diffstat (limited to 'src/dotty/tools/dotc/core/Flags.scala')
-rw-r--r--src/dotty/tools/dotc/core/Flags.scala22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/dotty/tools/dotc/core/Flags.scala b/src/dotty/tools/dotc/core/Flags.scala
index 0c433ecc5..17ff18b73 100644
--- a/src/dotty/tools/dotc/core/Flags.scala
+++ b/src/dotty/tools/dotc/core/Flags.scala
@@ -294,6 +294,11 @@ object Flags {
/** A case parameter (or its accessor, or a GADT skolem) */
final val CaseAccessor = termFlag(26, "<caseaccessor>")
+ /** An type parameter which is an alias for some other type parameter */
+ final val TypeParamInstance = typeFlag(26, "<type-param-inst>")
+
+ final val CaseAccessorOrTypeParamInstance = CaseAccessor.toCommonFlags
+
/** A super accessor */
final val SuperAccessor = termFlag(27, "<superaccessor>")
@@ -388,8 +393,8 @@ object Flags {
/** Flags guaranteed to be set upon symbol creation */
final val FromStartFlags =
AccessFlags | Module | Package | Deferred | Param | Scala2ExistentialCommon | Touched |
- Static | CovariantCommon | ContravariantCommon | ExpandedName | AccessorOrSealed | Frozen |
- Erroneous | ImplicitCommon | Permanent
+ Static | CovariantCommon | ContravariantCommon | ExpandedName | AccessorOrSealed |
+ CaseAccessorOrTypeParamInstance | Frozen | Erroneous | ImplicitCommon | Permanent
assert(FromStartFlags.isTermFlags && FromStartFlags.isTypeFlags)
// TODO: Should check that FromStartFlags do not change in completion
@@ -402,7 +407,7 @@ object Flags {
/** Flags that are passed from a type parameter of a class to a refinement symbol
* that sets the type parameter */
- final val RetainedTypeArgFlags = VarianceFlags | Protected | Local
+ final val RetainedTypeArgFlags = VarianceFlags | ExpandedName | Protected | Local
/** Modules always have these flags set */
final val ModuleCreationFlags = ModuleVal
@@ -414,7 +419,7 @@ object Flags {
final val SelfSymFlags = Private | Local | Deferred
/** The flags of a type parameter */
- final val TypeParamCreationFlags = TypeParam | Protected | Local
+ final val TypeParamCreationFlags = TypeParam | Deferred | Protected | Local
/** Flags that can apply to both a module val and a module class, except those that
* are added at creation anyway
@@ -452,6 +457,15 @@ object Flags {
/** A parameter or parameter accessor */
final val ParamOrAccessor = Param | Accessor
+ /** A covariant type parameter instance */
+ final val CovariantExpanded = allOf(ExpandedName, Covariant)
+
+ /** A contravariant type parameter instance */
+ final val ContravariantExpanded = allOf(ExpandedName, Contravariant)
+
+ /** A covariant type parameter instance */
+ final val TypeParamOrInstance = TypeParam | TypeParamInstance
+
/** Has defined or inherited default parameters */
final val HasDefaultParams = DefaultParameterized | InheritedDefaultParams