Rethinking this and it seems protection can only be private or package here, so maybe I should have this single statement:

`error("%s functions cannot be abstract", Pprotectionnames[protection]);`

The other cases where `final` is involved is dealt in another part of the code.