summaryrefslogtreecommitdiff
path: root/src/reflect
diff options
context:
space:
mode:
authorEugene Burmako <xeno.by@gmail.com>2013-01-31 19:46:51 +0100
committerEugene Burmako <xeno.by@gmail.com>2013-01-31 19:46:51 +0100
commit2403d1ddcaa1bd76c1f376a32ec03a36d4dab48b (patch)
tree109d952673e43bbd279111b18d5446f5935b9132 /src/reflect
parent42c4cc7a1eed222a1593c6ac2652cd5357c2897a (diff)
downloadscala-2403d1ddcaa1bd76c1f376a32ec03a36d4dab48b.tar.gz
scala-2403d1ddcaa1bd76c1f376a32ec03a36d4dab48b.tar.bz2
scala-2403d1ddcaa1bd76c1f376a32ec03a36d4dab48b.zip
SI-7046 reflection now auto-initializes knownDirectSubclasses
knownDirectSubclasses joins the happy family of flags, annotations and privateWithin, which automatically trigger initialization, when used within runtime reflection.
Diffstat (limited to 'src/reflect')
-rw-r--r--src/reflect/scala/reflect/internal/Symbols.scala6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/reflect/scala/reflect/internal/Symbols.scala b/src/reflect/scala/reflect/internal/Symbols.scala
index c1b868f3cb..f4d70a991c 100644
--- a/src/reflect/scala/reflect/internal/Symbols.scala
+++ b/src/reflect/scala/reflect/internal/Symbols.scala
@@ -86,7 +86,11 @@ 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 knownDirectSubclasses = {
+ if (!isCompilerUniverse && needsInitialize(isFlagRelated = false, mask = 0)) initialize
+ children
+ }
+
def baseClasses = info.baseClasses
def module = sourceModule
def thisPrefix: Type = thisType