Update IC for Apex rules

Issue #295 resolved
Scott Wells repo owner created an issue

There are a few items from this doc that are either missing or not quite correct in IC right now. In particular, I think the following changes are needed:

  • Default access when no visibility modifier is present is private. I'm not sure what I'm assuming currently, but I'm pretty sure it's not private.
  • Interface methods are inherently global. This surprised me. I thought you could have public interfaces as well, and that interface methods automatically took the containing interface's visibility.
  • Exception class names must end with "Exception". I already include this assumption, but I should verify it. I could also add an inspection ensuring that classes with namess ending with "Exception" must directly or indirectly extend Exception, and classes which directly or indirectly extend Exception must be have names ending with "Exception".
  • Exception classes have four implicit built-in constructors. I definitely need to include these during OST generation for Exception types. I should probably assume them during completion for custom Exception types in local source as well.
  • Classes and interfaces can be defined in trigger bodies and anonymous blocks. I'll need to check the parser, but I might already support this. Having said that, I can't recommend adding type declarations to trigger bodies and anonymous blocks! Nonetheless, if the grammar supports it...

The following don't require changes right now, but I could add inspections verifying compliance:

  • Inner classes can only be one level deep.
  • Static methods and variables only valid in top-level classes.

Comments (4)

  1. Log in to comment