summaryrefslogtreecommitdiff
path: root/src/reflect
diff options
context:
space:
mode:
Diffstat (limited to 'src/reflect')
-rw-r--r--src/reflect/scala/reflect/api/Symbols.scala8
-rw-r--r--src/reflect/scala/reflect/internal/Symbols.scala1
2 files changed, 9 insertions, 0 deletions
diff --git a/src/reflect/scala/reflect/api/Symbols.scala b/src/reflect/scala/reflect/api/Symbols.scala
index 1250545497..1c3ae77d45 100644
--- a/src/reflect/scala/reflect/api/Symbols.scala
+++ b/src/reflect/scala/reflect/api/Symbols.scala
@@ -481,6 +481,12 @@ trait Symbols { self: Universe =>
*/
def isOverride: Boolean
+ /** Is this symbol abstract (i.e. an abstract class, an abstract method, value or type member)?
+ *
+ * @group Tests
+ */
+ def isAbstract: Boolean
+
/** Is this symbol labelled as "abstract override"?
*
* @group Tests
@@ -744,6 +750,7 @@ trait Symbols { self: Universe =>
*
* @group Type
*/
+ @deprecated("Use isAbstract instead", "2.11.0")
def isAbstractType : Boolean
/** Does this symbol represent an existentially bound type?
@@ -877,6 +884,7 @@ trait Symbols { self: Universe =>
*
* @group Class
*/
+ @deprecated("Use isAbstract instead", "2.11.0")
def isAbstractClass: Boolean
/** Does this symbol represent a case class?
diff --git a/src/reflect/scala/reflect/internal/Symbols.scala b/src/reflect/scala/reflect/internal/Symbols.scala
index 2969bd92de..593c5e314a 100644
--- a/src/reflect/scala/reflect/internal/Symbols.scala
+++ b/src/reflect/scala/reflect/internal/Symbols.scala
@@ -89,6 +89,7 @@ trait Symbols extends api.Symbols { self: SymbolTable =>
def isJava: Boolean = isJavaDefined
def isVal: Boolean = isTerm && !isModule && !isMethod && !isMutable
def isVar: Boolean = isTerm && !isModule && !isMethod && !isLazy && isMutable
+ def isAbstract: Boolean = isAbstractClass || isDeferred || isAbstractType
def newNestedSymbol(name: Name, pos: Position, newFlags: Long, isClass: Boolean): Symbol = name match {
case n: TermName => newTermSymbol(n, pos, newFlags)