summaryrefslogtreecommitdiff
path: root/src/compiler/scala/reflect/internal/Symbols.scala
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2011-07-28 23:35:26 +0000
committerPaul Phillips <paulp@improving.org>2011-07-28 23:35:26 +0000
commitcda84e7f2145673e4e14cb886598fe19cd48585a (patch)
treef5c7c65e462f4a22f7b4910cc04f069d77e41f7f /src/compiler/scala/reflect/internal/Symbols.scala
parent5bbb198b246f43b80dba8f4466862b2ca8b9a9cb (diff)
downloadscala-cda84e7f2145673e4e14cb886598fe19cd48585a.tar.gz
scala-cda84e7f2145673e4e14cb886598fe19cd48585a.tar.bz2
scala-cda84e7f2145673e4e14cb886598fe19cd48585a.zip
Turned off the notFINAL flag which was applied ...
Turned off the notFINAL flag which was applied to expanded name methods due to java breakage, on the principle of "first, do no harm." If there is some rationale why these methods must be made final, let's at least get it documented. Review by dragos.
Diffstat (limited to 'src/compiler/scala/reflect/internal/Symbols.scala')
-rw-r--r--src/compiler/scala/reflect/internal/Symbols.scala10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/compiler/scala/reflect/internal/Symbols.scala b/src/compiler/scala/reflect/internal/Symbols.scala
index 91f052af6c..af6b561699 100644
--- a/src/compiler/scala/reflect/internal/Symbols.scala
+++ b/src/compiler/scala/reflect/internal/Symbols.scala
@@ -1639,9 +1639,15 @@ trait Symbols extends api.Symbols { self: SymbolTable =>
* term symbol rename it by expanding its name to avoid name clashes
*/
final def makeNotPrivate(base: Symbol) {
- if (this hasFlag PRIVATE) {
+ if (this.isPrivate) {
setFlag(notPRIVATE)
- if (isMethod && !isDeferred) setFlag(lateFINAL)
+ // Marking these methods final causes problems for proxies
+ // which use subclassing. If people write their code with no
+ // usage of final, we probably shouldn't introduce it ourselves
+ // unless we know it is safe.
+ //
+ // if (isMethod && !isDeferred)
+ // setFlag(lateFINAL)
if (!isStaticModule && !isClassConstructor) {
expandName(base)
if (isModule) moduleClass.makeNotPrivate(base)