FixType is a terminal, refactoring statement that occurs within Refactor statements. It changes the binary type of a component. It can also be used to change various status or process flags associated with that component.
The attributes of the FixType statement are as follows:
This required attribute specifies the symbol, the actual component whose type and/or flags are to be changed, If the containing Refactor statement had a FileFilter specified then this identifier should be specified relative to it; else, it should be specified relative to the root of the symbol table
This optional attribute is a Type attribute as discussed on the Declaration page. It specifies a new type of the identified component.
This optional attribute specifies that certain context, status, or process flags as specified on Declaration page be set for the identified components.
The actual entries that may be used for the Status attribute are as follows:
This entry applies to components whose type should be fixed to a strong type for the purposes of migration but should be authored in the generated code as type dynamic in C# (or type Object in VB.NET) . This is typically used for weakly-typed symbol that are used with multiple different types.
This entry is only used with subprograms. It specifies that the subprogram should be overloaded. It actually marks the subprogram and all its optional arguments with the Overload context flag.
This entry is only used with subprograms. It sets the Protected context flag which specifies that the component requires the protected adornment when it is declared in the target language.
This entry is only used with subprograms. It sets the BlockTemps process flag which blocks the formation of a TempArg when converting a Select into an If.
This entry applies to components whose type is being set to Variant or Object. It sets the ObjectOnly process flag which blocks all type inferences on the component. It will retain its weak type and casting or boxing operations will be inserted where needed around references to the component.
This entry applies to subprogram parameters. It sets the EnforceType process flag and means that any argument passed to this parameter should have the parameter type enforced on it as opposed to doing any type inference on either the parameter or argument .
This entry sets the ByOut context flag.
This entry sets the ByRef context flag.
This entry sets the ByVal context flag.
Used with type="Collection" Status="type" indicates that the symbol is a SortedList<int,type>. This is useful for ControlArrays of the specified type.
The script errors associated with the Fixtype statement are as follows: