summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Burmako <xeno.by@gmail.com>2012-08-27 16:15:39 +0200
committerEugene Burmako <xeno.by@gmail.com>2012-08-27 16:15:39 +0200
commit9abf74be15672ce4ec1900a6b26fbf35cbce5866 (patch)
tree42dfd2a085256ac55b68f24eb8ade0545c4d84cf
parenta23edefac652e3be1474fceb3ee15d7eaecf1359 (diff)
downloadscala-9abf74be15672ce4ec1900a6b26fbf35cbce5866.tar.gz
scala-9abf74be15672ce4ec1900a6b26fbf35cbce5866.tar.bz2
scala-9abf74be15672ce4ec1900a6b26fbf35cbce5866.zip
exposes Symbol.children
As requested in http://stackoverflow.com/questions/12078366/
-rw-r--r--src/reflect/scala/reflect/api/Symbols.scala5
-rw-r--r--src/reflect/scala/reflect/internal/Symbols.scala1
2 files changed, 6 insertions, 0 deletions
diff --git a/src/reflect/scala/reflect/api/Symbols.scala b/src/reflect/scala/reflect/api/Symbols.scala
index 0c4f143d57..6aa37edc7f 100644
--- a/src/reflect/scala/reflect/api/Symbols.scala
+++ b/src/reflect/scala/reflect/api/Symbols.scala
@@ -381,6 +381,11 @@ trait Symbols extends base.Symbols { self: Universe =>
*/
def isSealed: Boolean
+ /** If this is a sealed class, its known direct subclasses.
+ * Otherwise, the empty set.
+ */
+ def knownDirectSubclasses: Set[Symbol]
+
/** If this symbol is a class or trait, its self type, otherwise the type
* of the symbol itself.
*/
diff --git a/src/reflect/scala/reflect/internal/Symbols.scala b/src/reflect/scala/reflect/internal/Symbols.scala
index 09ac3e5f6f..8f99f42494 100644
--- a/src/reflect/scala/reflect/internal/Symbols.scala
+++ b/src/reflect/scala/reflect/internal/Symbols.scala
@@ -74,6 +74,7 @@ trait Symbols extends api.Symbols { self: SymbolTable =>
case n: TypeName => if (isClass) newClassSymbol(n, pos, newFlags) else newNonClassSymbol(n, pos, newFlags)
}
+ def knownDirectSubclasses = children
def thisPrefix: Type = thisType
def selfType: Type = typeOfThis
def typeSignature: Type = info