diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/reflect/internal/Symbols.scala | 10 |
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) |