From 9abf74be15672ce4ec1900a6b26fbf35cbce5866 Mon Sep 17 00:00:00 2001 From: Eugene Burmako Date: Mon, 27 Aug 2012 16:15:39 +0200 Subject: exposes Symbol.children As requested in http://stackoverflow.com/questions/12078366/ --- src/reflect/scala/reflect/api/Symbols.scala | 5 +++++ src/reflect/scala/reflect/internal/Symbols.scala | 1 + 2 files changed, 6 insertions(+) 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 -- cgit v1.2.3