summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2012-09-26 11:44:54 -0700
committerPaul Phillips <paulp@improving.org>2012-09-26 11:44:54 -0700
commit874b3724775b2ad06976ffe58865ece5dc3393b5 (patch)
treecd350badb747ef6c46ae1c537510d2dd82f245a4
parent53cb251ae24d06ed9e1e98b39d9be4c5baaf3525 (diff)
downloadscala-874b3724775b2ad06976ffe58865ece5dc3393b5.tar.gz
scala-874b3724775b2ad06976ffe58865ece5dc3393b5.tar.bz2
scala-874b3724775b2ad06976ffe58865ece5dc3393b5.zip
Refine an -Xlint warning.
It should not warn about default getters.
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/RefChecks.scala12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
index 84ec86b194..e3f5214581 100644
--- a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
@@ -1631,12 +1631,14 @@ abstract class RefChecks extends InfoTransform with scala.reflect.internal.trans
case NullaryMethodType(restpe) if restpe.typeSymbol == UnitClass =>
// this may be the implementation of e.g. a generic method being parameterized
// on Unit, in which case we had better let it slide.
- if (sym.isGetter || sym.allOverriddenSymbols.exists(over => !(over.tpe.resultType =:= sym.tpe.resultType))) ()
- else unit.warning(sym.pos,
- "side-effecting nullary methods are discouraged: suggest defining as `def %s()` instead".format(
- sym.name.decode)
+ val isOk = (
+ sym.isGetter
+ || sym.allOverriddenSymbols.exists(over => !(over.tpe.resultType =:= sym.tpe.resultType))
+ || (sym.name containsName nme.DEFAULT_GETTER_STRING)
)
- case _ => ()
+ if (!isOk)
+ unit.warning(sym.pos, s"side-effecting nullary methods are discouraged: suggest defining as `def ${sym.name.decode}()` instead")
+ case _ => ()
}
// Verify classes extending AnyVal meet the requirements