summaryrefslogtreecommitdiff
path: root/src/compiler
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler')
-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)