- changed version to Unassigned
Apex annotations and inspections
Add annotations and inspections for the most common types of errors:
- Unresolved references - if unresolved reference to a type, look for potential matches with namespace qualifications and offer a quick fix option to qualify the namespace
- Duplicate declarations
- Unused declarations - offer a quick fix to delete the declaration
- Data type mismatches - offer a quick fix to add a cast
Comments (11)
-
reporter -
reporter Issue
#355was marked as a duplicate of this issue. -
reporter Issue
#480was marked as a duplicate of this issue. -
it's a nice to have function!
-
This would be great!
Especially dead code detection could would really help me to clean up ever growing orgs :-)
-
reporter - changed version to 2.0
- edited description
I've already implemented Unresolved References and Unused Declarations for 2.0. I'll be adding the other two as well, hopefully before 2.0 ships but if not very shortly thereafter.
-
Great work!
I've not had the chance to check it out, but if there could be a high-level option: "Illuminated Cloud --> find unused code" that would be fantastic! Is that something you'd consider?
-
reporter Willem, you can run these inspections in bulk as well. I've run the unused declaration inspection against the entire project and it lists all unused code. You can then remove all of it with a single button click, though I wouldn't recommend that. Some unused code can actually be used in other ways that aren't obvious to IC. For those you can use a comment to suppress the inspection for that statement, method, or type so that it won't be flagged again. Also, it doesn't currently perform transitive dependency analysis so after you delete a bunch of unused code, you may have peeled back another layer of code that was only ever called by that code. I do plan to add that at some point, but for an existing code base right now you need to run it a few times until you've purged all of the cruft.
-
Fantastic!
You've gone even further than I hoped Thanks!
Running it a few times is not a problem at all, and is actually a great way to walk through all the code layer by layer to see whether the code can really be removed.
-
reporter Hah! That's seeing the silver lining! I actually do agree, though having run this inspection across a pretty significant code base and used it to shave off the dead ends (of which there were quite a few!), there were times I wished I'd just implemented transitive processing since it would have generally just "done the right thing".
Anyway, all of the inspections will have the ability to be run en masse on any subset of the code base, and similar with the corresponding code intentions. Most of them will run on-the-fly as you're typing your code, but some are prohibitively expensive for on-the-fly processing so those will instead be run as an explicit activity. The primary current examples are the external static code analyzers I've already integrated such as PMD Apex and Lightning Lint.
FYI, I'll be demoing all of this in SF next week at the Bay Area SDUG meeting and again at DF17.
-
reporter - changed status to resolved
IC2 ships with unresolvable reference, unused declaration, and illegal assignment code inspections. Resolving this more broad enhancement request as complete and will create additional stories for specific new inspections/intentions and enhancements to the existing ones.
- Log in to comment