Here are some things that I've done/found out manually that I want my IDE to do for me:
1. General inter-procedural analysis queries: - Does anyone pass in null? - Is X set in each path that can be taken? - Take a theory, for example numerical ranges, what can you tell me about this function? - Is this probably a hot function? - Are any of these sum type ctrs unused?
2. Show me counter-examples of things I believe about the code, don't force me to find them myself.
3. Predictable, but non-standard (not pre-rolled by IDE), refactoring. I had to grep and do an Emacs macro that went through the list of matches, one execution at a time. Why can't the IDE record my actions, show me the AST transformation that I did, and let me apply them for some qualifying criteria across the whole codebase?
4. Let me apply semantically equivalent code refactorings within a function by picking cost-based heuristics. For example, "flatten indentation levels".
5. Do coarse-grained semantic analysis for me, "are these the same on a type-level? OK, now apply this theory, still the same? Aah, I'm about to go for lunch, just run the whole analysis".
6. Let me save any thing I've done, so that I can use it in the future
Something like that, that'd be great. I have 128GB of RAM and like 64 CPU cores and I'm using my brain on this 1M+LoC codebase while they sit idle. Lazy bums, I tell ya!
Number of total objects
Size of objects
Number of methods
Avg size of method
Etc
As a sibling comment points out, by definition a live system can do everything a dead system can and more.> As a sibling comment points out, by definition a live system can do everything a dead system can and more.
"Can do" is not the same as "we can say about", see my response to sibling.