@@ -338,9 +338,10 @@ object Checking {
338
338
def checkWithDeferred (flag : FlagSet ) =
339
339
if (sym.is(flag))
340
340
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" )
344
345
def checkApplicable (flag : FlagSet , ok : Boolean ) =
345
346
if (! ok && ! sym.is(Synthetic ))
346
347
fail(i " modifier ` $flag` is not allowed for this definition " )
@@ -373,10 +374,11 @@ object Checking {
373
374
}
374
375
if (sym.isValueClass && sym.is(Trait ) && ! sym.isRefinementClass)
375
376
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` " )
380
382
if (sym.is(Inline )) checkApplicable(Inline , sym.isTerm && ! sym.is(Mutable | Module ))
381
383
if (sym.is(Lazy )) checkApplicable(Lazy , ! sym.is(Method | Mutable ))
382
384
if (sym.isType && ! sym.is(Deferred ))
0 commit comments