Skip to content

Commit

Permalink
Merge pull request #10450 from lrytz/t12815
Browse files Browse the repository at this point in the history
Don't warn nilary / nullary override for bean getters
  • Loading branch information
lrytz committed Jun 30, 2023
2 parents 93d6281 + ffa56e1 commit dff5007
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 2 deletions.
5 changes: 3 additions & 2 deletions src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
Original file line number Diff line number Diff line change
Expand Up @@ -452,8 +452,9 @@ abstract class RefChecks extends Transform {
else
refchecksWarning(member.pos, msg, WarningCategory.OtherNullaryOverride)
}
else if (other.paramss.isEmpty && !member.paramss.isEmpty
&& !javaDetermined(member) && !member.overrides.exists(javaDetermined)
else if (other.paramss.isEmpty && !member.paramss.isEmpty &&
!javaDetermined(member) && !member.overrides.exists(javaDetermined) &&
!member.hasAnnotation(BeanPropertyAttr) && !member.hasAnnotation(BooleanBeanPropertyAttr)
) {
val msg = "method with a single empty parameter list overrides method without any parameter list"
if (currentRun.isScala3)
Expand Down
9 changes: 9 additions & 0 deletions test/files/neg/t12815.check
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
t12815.scala:22: warning: method with a single empty parameter list overrides method without any parameter list
def e(): Int = 1 // warn
^
t12815.scala:23: warning: method without a parameter list overrides a method with a single empty one
def f: Int = 1 // warn
^
error: No warnings can be incurred under -Werror.
2 warnings
1 error
24 changes: 24 additions & 0 deletions test/files/neg/t12815.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
// scalac: -Werror

import scala.beans.BeanProperty

trait T {
def getAa: String
def getBb(): String

def c: Int
def d(): Int

def e: Int
def f(): Int
}
class C extends T {
@BeanProperty val aa: String = "" // ok
@BeanProperty val bb: String = ""

val c: Int = 1
val d: Int = 1 // ok

def e(): Int = 1 // warn
def f: Int = 1 // warn
}

0 comments on commit dff5007

Please sign in to comment.