diff options
author | Som Snytt <som.snytt@gmail.com> | 2016-01-13 12:07:24 -0800 |
---|---|---|
committer | Som Snytt <som.snytt@gmail.com> | 2016-01-13 12:15:44 -0800 |
commit | a7623cb489e34c37fee86412a7bc5b93c32c8369 (patch) | |
tree | 171a94e6bf2dbc319c6e0026e4a27e8a355c9183 /src/compiler | |
parent | 334cbc720fd3020b59271bf060747bc2350e1f89 (diff) | |
download | scala-a7623cb489e34c37fee86412a7bc5b93c32c8369.tar.gz scala-a7623cb489e34c37fee86412a7bc5b93c32c8369.tar.bz2 scala-a7623cb489e34c37fee86412a7bc5b93c32c8369.zip |
SI-9622 Native method may be private
This was lost in a refactor.
https://github.com/scala/scala/commit/290f687fb6ab91b6aef62d871036ddc3829f12b4
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 e01edd196e..d39df929e2 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Namers.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Namers.scala @@ -1592,11 +1592,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) } @@ -1635,6 +1631,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 @@ -1650,11 +1650,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) + } } checkNoConflict(FINAL, SEALED) |