release notes

Post date: Nov 19, 2020 3:18:50 PM

  • Issue 1751 - IC2 was only recreating the Developer Console trace flag when it wasn't present at all. Now it also does so when it's present but expired. This should help to keep that critical trace flag fresh while working in the Log Analyzer and Anonymous Apex tool windows.

  • Issue 1759 - When resolving types by simple name, null values were being cached too aggressively, ultimately leading to any number of issues with incorrect unresolvable symbols, gaps in find usages, etc. These are now evicted properly.

  • Issue 1760 - Evidently the Salesforce APIs report some reference-type SObject fields as being string-type. Now when OST generation sees a field that specifies a reference name but is reported as a string, it processes that field as a reference instead. This seems to affect a dozen or so SObjects, each having a small number of reference fields reported in this manner. NOTE: You must regenerate (minimally) the SObjects portion of your OST to see the effect of this fix.

  • Fixed a number of small parser, reference resolution, and code inspection bugs:

    • When implementing multiple parameterized types with nested type parameters, e.g., class Foo implements Iterable<Map<String, String>>, Iterator<Map<String, String>>, the Apex parser would only recognize the first type. This is now fixed.

    • Fixed expression type evaluation for Schema.<sobjectTypeName>.SObjectType.fields.<fieldName> and Schema.<sobjectTypeName>.<fieldName> so that they both evaluate to Schema.SObjectField instead of the referenced field.

    • Fixed an issue with reference resolution where an incorrect match could occur because it would stop at the closest declaration of the expected type and name but not necessarily signature.

    • Fixed an issue with detection of overridden @TestVisible private virtual methods.

  • Tightened the surrounding newlines emitted when generating implementation/override methods from interfaces/base classes respectively.

  • Fixed an issue where generated implementations of methods from System.Iterable and System.Iterator did not properly take into account the type parameter.

  • Fixed a few system type interface implementation relationships in the OST.

  • Other related fixes and improvements.