Strict Symbol Comparison logging offline

One of the early ways of identifying all the places in GT that will need to be modified is to run all automated tests and log every instance of a mismatched comparison.

logFile := '/path/to/log.ston' asFileReference.
  

Log comparisons during a test run

To Be Supplied.

Load comparisons from a log file

Load a log file generated in the previous section:

utility := GtStrictSymbolInstallation new 
	loadEqualityStatsFromFile: logFile.
  

Refactor equality calls based on the log file

This will replace all mismatched instances of #= with #sameContentAs::

utility refactorEqualityCalls
  

Refactor references to collections

This will replace most instance creation of Dictionary HashedCollection subclass: #Dictionary instanceVariableNames: '' classVariableNames: '' package: 'Collections-Unordered-Dictionaries' , Set HashedCollection subclass: #Set instanceVariableNames: '' classVariableNames: '' package: 'Collections-Unordered-Sets' and WeakSet Set subclass: #WeakSet instanceVariableNames: 'flag' classVariableNames: '' package: 'Collections-Weak-Base' with their string content equivalents.

This is generally not recommended due to the large number of changes that are made, many of which are probably better handled using one of the other techniques.

utility
	refactorDictionaryReferences;
	refactorSetReferences;
	refactorWeakSetReferences.