aboutsummaryrefslogtreecommitdiff
path: root/compiler/src/dotty/tools/dotc/ast/untpd.scala
diff options
context:
space:
mode:
authorodersky <odersky@gmail.com>2017-04-06 13:12:05 +0200
committerGitHub <noreply@github.com>2017-04-06 13:12:05 +0200
commit62c2a1e2d6265cf7f096e4c4e51e4e883bce1514 (patch)
tree5cd2f9018b4a5ed5fcd1ebe6a6aed392d3fd00b4 /compiler/src/dotty/tools/dotc/ast/untpd.scala
parent2556c83a04af1baf9dd69f6139e9ea61d39e7c6a (diff)
parent30d8d878118c537ff82c88ef7ade8780b390bfae (diff)
downloaddotty-62c2a1e2d6265cf7f096e4c4e51e4e883bce1514.tar.gz
dotty-62c2a1e2d6265cf7f096e4c4e51e4e883bce1514.tar.bz2
dotty-62c2a1e2d6265cf7f096e4c4e51e4e883bce1514.zip
Merge pull request #1958 from dotty-staging/add-enum
Add "enum" construct
Diffstat (limited to 'compiler/src/dotty/tools/dotc/ast/untpd.scala')
-rw-r--r--compiler/src/dotty/tools/dotc/ast/untpd.scala9
1 files changed, 9 insertions, 0 deletions
diff --git a/compiler/src/dotty/tools/dotc/ast/untpd.scala b/compiler/src/dotty/tools/dotc/ast/untpd.scala
index 1f37ad1c5..a5feecc77 100644
--- a/compiler/src/dotty/tools/dotc/ast/untpd.scala
+++ b/compiler/src/dotty/tools/dotc/ast/untpd.scala
@@ -9,6 +9,7 @@ import Decorators._
import util.Property
import language.higherKinds
import collection.mutable.ListBuffer
+import reflect.ClassTag
object untpd extends Trees.Instance[Untyped] with UntypedTreeInfo {
@@ -132,6 +133,10 @@ object untpd extends Trees.Instance[Untyped] with UntypedTreeInfo {
case class Inline() extends Mod(Flags.Inline)
case class Type() extends Mod(Flags.EmptyFlags)
+
+ case class Enum() extends Mod(Flags.EmptyFlags)
+
+ case class EnumCase() extends Mod(Flags.EmptyFlags)
}
/** Modifiers and annotations for definitions
@@ -185,6 +190,10 @@ object untpd extends Trees.Instance[Untyped] with UntypedTreeInfo {
def hasFlags = flags != EmptyFlags
def hasAnnotations = annotations.nonEmpty
def hasPrivateWithin = privateWithin != tpnme.EMPTY
+ def hasMod[T: ClassTag] = {
+ val cls = implicitly[ClassTag[T]].runtimeClass
+ mods.exists(mod => cls.isAssignableFrom(mod.getClass))
+ }
}
@sharable val EmptyModifiers: Modifiers = new Modifiers()