Skip to content

Commit 874f48b

Browse files
committed
one fewer warning: can't currently distinguish getter and setter in unused defs in traits
1 parent 7d21968 commit 874f48b

File tree

2 files changed

+7
-9
lines changed

2 files changed

+7
-9
lines changed

src/reflect/scala/reflect/internal/Symbols.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,9 @@ trait Symbols extends api.Symbols { self: SymbolTable =>
9898
def isJava: Boolean = isJavaDefined
9999

100100
def isField: Boolean = isTerm && !isModule && (!isMethod || owner.isTrait && isAccessor)
101-
def isVal: Boolean = isField && !isMutable
102-
def isVar: Boolean = isField && !isLazy && isMutable
101+
def isMutableVal = if (owner.isTrait) !hasFlag(STABLE) else isMutable
102+
def isVal: Boolean = isField && !isMutableVal
103+
def isVar: Boolean = isField && !isLazy && isMutableVal
103104

104105
def isAbstract: Boolean = isAbstractClass || isDeferred || isAbstractType
105106
def isPrivateThis = (this hasFlag PRIVATE) && (this hasFlag LOCAL)

test/files/neg/warn-unused-privates.check

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,13 @@ warn-unused-privates.scala:14: warning: private val in object Bippy is never use
1616
warn-unused-privates.scala:36: warning: private val in class Boppy is never used
1717
private val hummer = "def" // warn
1818
^
19-
warn-unused-privates.scala:43: warning: private method in trait Accessors is never used
19+
warn-unused-privates.scala:43: warning: private var in trait Accessors is never used
2020
private var v1: Int = 0 // warn
2121
^
22-
warn-unused-privates.scala:43: warning: private setter in trait Accessors is never used
23-
private var v1: Int = 0 // warn
24-
^
25-
warn-unused-privates.scala:44: warning: private setter in trait Accessors is never used
22+
warn-unused-privates.scala:44: warning: private var in trait Accessors is never used
2623
private var v2: Int = 0 // warn, never set
2724
^
28-
warn-unused-privates.scala:45: warning: private method in trait Accessors is never used
25+
warn-unused-privates.scala:45: warning: private var in trait Accessors is never used
2926
private var v3: Int = 0 // warn, never got
3027
^
3128
warn-unused-privates.scala:57: warning: private default argument in trait DefaultArgs is never used
@@ -65,5 +62,5 @@ warn-unused-privates.scala:103: warning: local type OtherThing is never used
6562
type OtherThing = String // warn
6663
^
6764
error: No warnings can be incurred under -Xfatal-warnings.
68-
22 warnings found
65+
21 warnings found
6966
one error found

0 commit comments

Comments
 (0)