If you read concrete classes its not always clear whether a member is delibrately package local or left unspecified.
Members left unspecified can often be made private or even deleted (checking for unused private members is simpler than unused package local members)
Some members can appear that private is okay, however for performance reasons may have been delibrately made package local. e.g. a member which is accessed by an inner class can perform better if package local rather than private (due to the use of accessor methods)
To address this I suggest a @package_local annotation to signify that a member is explicity package local.
Status: New
Labels:
Type-Defect
Priority-Medium