Support Statement: Dealing with Difficult GoSub migrations
gmStudio attempts to refactor subroutines using GoSub by extracting the GoSub target code into a method and then calling the extracted method from the locations of the GoSub. Â
In some cases, this technique can fail to produce a good translation – for example, when the GoSub is intermingled with Gotos and VB6 error handling logic. In those cases, you may suppress the GoSub migration for the particular method by using a RemoveGoSub Refactor rule:
<Compile...> ... <Refactor> <Migrate id="identifier_of_method" RemoveGoSub="on" /> </Refactor> </Compile>
You may find the identifier of the method by examining the symbol report. Â
You may also choose to analyze and rework the difficult code to allow GoSub refactoring or rework it manually after translation. Remember also that manually modified subroutines may be re-integrated into the upgrade solution using a Refactor/Reauthor directive that is performed after the <Analyse/> operation.