@@ -338,9 +338,10 @@ object Checking {
338338 def checkWithDeferred (flag : FlagSet ) =
339339 if (sym.is(flag))
340340 fail(AbstractMemberMayNotHaveModifier (sym, flag))
341- def checkNoConflict (flag1 : FlagSet , flag2 : FlagSet ) =
342- if (sym.is(allOf(flag1, flag2)))
343- fail(i " illegal combination of modifiers: ` $flag1` and ` $flag2` for: $sym" )
341+ def checkNoConflict (flag1 : FlagSet , flag2 : FlagSet , msg : => String ) =
342+ if (sym.is(allOf(flag1, flag2))) fail(msg)
343+ def checkCombination (flag1 : FlagSet , flag2 : FlagSet ) =
344+ checkNoConflict(flag1, flag2, i " illegal combination of modifiers: ` $flag1` and ` $flag2` for: $sym" )
344345 def checkApplicable (flag : FlagSet , ok : Boolean ) =
345346 if (! ok && ! sym.is(Synthetic ))
346347 fail(i " modifier ` $flag` is not allowed for this definition " )
@@ -373,10 +374,11 @@ object Checking {
373374 }
374375 if (sym.isValueClass && sym.is(Trait ) && ! sym.isRefinementClass)
375376 fail(CannotExtendAnyVal (sym))
376- checkNoConflict(Final , Sealed )
377- checkNoConflict(Private , Protected )
378- checkNoConflict(Abstract , Override )
379- checkNoConflict(Lazy , Inline )
377+ checkCombination(Final , Sealed )
378+ checkCombination(Private , Protected )
379+ checkCombination(Abstract , Override )
380+ checkCombination(Lazy , Inline )
381+ checkNoConflict(Lazy , ParamAccessor , s " parameter may not be `lazy` " )
380382 if (sym.is(Inline )) checkApplicable(Inline , sym.isTerm && ! sym.is(Mutable | Module ))
381383 if (sym.is(Lazy )) checkApplicable(Lazy , ! sym.is(Method | Mutable ))
382384 if (sym.isType && ! sym.is(Deferred ))
0 commit comments