File tree 1 file changed +6
-2
lines changed
src/compiler/scala/tools/nsc/typechecker 1 file changed +6
-2
lines changed Original file line number Diff line number Diff line change @@ -117,10 +117,14 @@ trait Namers extends MethodSynthesis {
117
117
}
118
118
119
119
// All lazy vals need accessors, including those owned by terms (e.g., in method) or private[this] in a class
120
- def deriveAccessors (vd : ValDef ) = vd.mods.isLazy || (owner.isClass && deriveAccessorsInClass(vd))
120
+ def deriveAccessors (vd : ValDef ) = (vd.mods.isLazy ||
121
+ owner.isTrait && { assert(! (vd.name startsWith nme.OUTER ) && ! isEnumConstant(vd), s " deriveAccessors invar fail for $vd" ); true }
122
+ || (owner.isClass && deriveAccessorsInClass(vd))
123
+ )
124
+
121
125
122
126
private def deriveAccessorsInClass (vd : ValDef ) =
123
- ( ! vd.mods.isPrivateLocal || owner.isTrait) && // note, private[this] lazy vals do get accessors -- see outer disjunction of deriveAccessors
127
+ ! vd.mods.isPrivateLocal && // note, private[this] lazy vals do get accessors -- see outer disjunction of deriveAccessors
124
128
! (vd.name startsWith nme.OUTER ) && // outer accessors are added later, in explicitouter
125
129
! isEnumConstant(vd) // enums can only occur in classes, so only check here
126
130
You can’t perform that action at this time.
0 commit comments