2.0.1.2 release notes

Post date: Mar 05, 2018 3:51:31 PM

2.0.1.2

  • Issue 894 - Significant performance optimizations for OST generation, in particular against orgs with large numbers of custom Apex classes (packaged or unpackaged). Note that the primary optimization does come with a few caveats listed below. Please let me know if you see any other negative effects of this change ASAP so that I can address them, and if you're seeing particularly notable performance gains (I've heard about 30-40 minute OST gen times going down to 2-3 minutes!), please share those details as well.

    • I've noticed that the new APIs can "lose" some global symbols from types in installed managed packages, in particular interface methods. I've reported this issue to Salesforce.

    • The final modifier is dropped from class constants in installed managed packages. This change should be benign, but I do want to make users aware of it. I've also reported this issue to Salesforce.

  • In addition to the OST performance optimizations, I also added a connection-level option, Ensure Field Read Access, to configure whether SObject fields should be made readable by the current user or not. IC does this by updating the current user's profile to have read access for all SObject fields. Without read access, fields are not included in the OST and are therefore not available for code completion, integrated documentation, navigation, etc., and will show up as unresolvable references in the editor. It is recommended that this option be enabled when working with any type of developer organization, e.g., DE orgs, Partner DE orgs, dev scratch orgs, etc. It would make sense to disable it against production, sandbox, and UAT orgs where authorization should be managed carefully.

  • Issue 865 - Prospective fix for an issue loading binary static resource bodies.

  • Issue 870 - WebStorm does not include the libraries required for code coverage HTML report generation. The coverage report generation action is now disabled if the required libraries are not present. You can enable this feature in WebStorm by copying coverage-report.jar and freemarker.jar from IntelliJ IDEA Community Edition (ideally of the same version) into WebStorm's lib directory.

  • Issue 882 - Expanded the effect of @TestVisible annotations on enum types to provide access to class and instance methods such as name() as well as enum constants.

  • Issue 883 - Fixed an issue with proper handling of references to standard SObjects and custom SObjects in the default namespace via Schema. qualifications.

  • Issue 892 - Fixed an issue with ternary expression type inference.

  • Issue 895 - Fixed an issue that caused the type of List<List<ElementType>>[0] to be incorrectly inferred as List<ElementType>[].

  • Issue 896 - Invocations from trigger bodies are now properly included in method call hierarchies.

  • Issue 902 - Fixed a long-standing issue with the way that inheritance relationships are determined. If you see any further false negatives around inheritance relationships, please let me know.

  • Issue 904 - Allowed future reserved words loop and of as valid identifier names in the Apex parser.

  • Issue 905 - Fixed an issue with assignment from AggregateResult to SObject.

  • Fixed another few instances of "Test Ignored" issues. As before, the root cause issues should now be reported at the class level. If you see any further instances of "Test Ignored" without some type of directional guidance on how to resolve the issue, please let me know ASAP.

  • Fixed an issue that could result in the IDE locking up when applying USER_DEBUG-only filtering to unit test output.

  • Several fixes for the Add Cast code intention for the Illegal Assignment code inspection:

    • The fully-qualified type name is no longer used in the cast operator unless necessary from the point of insertion.

    • If the expression is already cast to an incorrect type, the incorrect cast is replaced with the correct one.

  • Other minor fixes and enhancements.