diff options
author | Eugene Burmako <xeno.by@gmail.com> | 2013-02-07 09:14:42 +0100 |
---|---|---|
committer | Eugene Burmako <xeno.by@gmail.com> | 2013-10-18 17:48:51 +0200 |
commit | 544ae248aabaf919294f2aa375ebbd92b1c8757d (patch) | |
tree | 7a007e9103d68c8b6ee123d98cc4a39d33e5ed32 /src | |
parent | d05566ca327103d61b071a5022be98f1f3f045f3 (diff) | |
download | scala-544ae248aabaf919294f2aa375ebbd92b1c8757d.tar.gz scala-544ae248aabaf919294f2aa375ebbd92b1c8757d.tar.bz2 scala-544ae248aabaf919294f2aa375ebbd92b1c8757d.zip |
SI-7045 reflection now auto-initializes selfType
selfType joins the happy family of flags, annotations and privateWithin,
which automatically trigger initialization, when used within runtime
reflection.
Diffstat (limited to 'src')
-rw-r--r-- | src/reflect/scala/reflect/internal/Symbols.scala | 6 |
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 a54a17901a..fd627b8fd3 100644 --- a/src/reflect/scala/reflect/internal/Symbols.scala +++ b/src/reflect/scala/reflect/internal/Symbols.scala @@ -110,10 +110,14 @@ trait Symbols extends api.Symbols { self: SymbolTable => children } + def selfType = { + if (!isCompilerUniverse && needsInitialize(isFlagRelated = false, mask = 0)) initialize + typeOfThis + } + def baseClasses = info.baseClasses def module = sourceModule def thisPrefix: Type = thisType - def selfType: Type = typeOfThis def typeSignature: Type = { fullyInitializeSymbol(this); info } def typeSignatureIn(site: Type): Type = { fullyInitializeSymbol(this); site memberInfo this } |