diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2016-01-18 16:46:23 +1000 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2016-01-18 16:46:23 +1000 |
commit | a5cad0d6fd2c0d3552db9f9f97886168ba0c6003 (patch) | |
tree | de58df7aff11e94b934f7853f430cb31baed7491 /src/compiler | |
parent | d16918db010b2805677254e748a617c417df98ec (diff) | |
parent | a7623cb489e34c37fee86412a7bc5b93c32c8369 (diff) | |
download | scala-a5cad0d6fd2c0d3552db9f9f97886168ba0c6003.tar.gz scala-a5cad0d6fd2c0d3552db9f9f97886168ba0c6003.tar.bz2 scala-a5cad0d6fd2c0d3552db9f9f97886168ba0c6003.zip |
Merge pull request #4903 from som-snytt/issue/9622
SI-9622 Native method may be private
Diffstat (limited to 'src/compiler')
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/Namers.scala | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Namers.scala b/src/compiler/scala/tools/nsc/typechecker/Namers.scala index 0b6b6065f3..8943ec810d 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Namers.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Namers.scala @@ -1594,11 +1594,7 @@ trait Namers extends MethodSynthesis { import SymValidateErrors._ def fail(kind: SymValidateErrors.Value) = SymbolValidationError(sym, kind) - def checkWithDeferred(flag: Int) { - if (sym hasFlag flag) - AbstractMemberWithModiferError(sym, flag) - } - def checkNoConflict(flag1: Int, flag2: Int) { + def checkNoConflict(flag1: Int, flag2: Int) = { if (sym hasAllFlags flag1.toLong | flag2) IllegalModifierCombination(sym, flag1, flag2) } @@ -1637,6 +1633,10 @@ trait Namers extends MethodSynthesis { checkNoConflict(ABSTRACT, FINAL) if (sym.isDeferred) { + def checkWithDeferred(flag: Int) = { + if (sym hasFlag flag) + AbstractMemberWithModiferError(sym, flag) + } // Is this symbol type always allowed the deferred flag? def symbolAllowsDeferred = ( sym.isValueParameter @@ -1652,11 +1652,12 @@ trait Namers extends MethodSynthesis { ) if (sym hasAnnotation NativeAttr) sym resetFlag DEFERRED - else if (!symbolAllowsDeferred && ownerRequiresConcrete) - fail(AbstractVar) + else { + if (!symbolAllowsDeferred && ownerRequiresConcrete) fail(AbstractVar) - checkWithDeferred(PRIVATE) - checkWithDeferred(FINAL) + checkWithDeferred(PRIVATE) + checkWithDeferred(FINAL) + } } if (!sym.isJavaEnum) |