Inference/src/TypeSystem/ClassTypeProxy.cs
/// <summary>
/// Clones a type to be used in SSA. It must taken into account that:
/// - In case it has no type variables, no clone is performed
/// - WriteType variables, equivalence classes and substitutions are cloned
/// </summary>
/// <param name="clonedTypeVariables">WriteType variables that have been cloned.</param>
/// <param name="equivalenceClasses">Equivalence classes of the type cloned variables. These
/// equivalence classes need to be updated with the new cloned type variables.</param>
/// <param name="methodAnalyzed">The method that is being analyzed when the operation is performed.</param>
/// <returns>The cloned type</returns>
Clones a type to be used in SSA. It must taken into account that:
In case it has no type variables, no clone is performed
WriteType variables, equivalence classes and substitutions are cloned
Clones a type to be used in SSA . It must taken into account that : In case it has no type variables no clone is performed WriteType variables equivalence classes and substitutions are cloned
internal override TypeExpression Clone(IDictionary<int, TypeVariable> clonedTypeVariables, IList<EquivalenceClass> equivalenceClasses, MethodType methodAnalyzed) {
            if (!this.HasTypeVariables())
                return this;
            ClassTypeProxy newClassProxy = (ClassTypeProxy)this.MemberwiseClone();
            if (newClassProxy.realType != null)
                newClassProxy.realType = (ClassType)newClassProxy.realType.Clone(clonedTypeVariables, equivalenceClasses, methodAnalyzed);
            return newClassProxy;
        }
internal override TypeExpression Clone ( IDictionary < int , TypeVariable > clonedTypeVariables , IList < EquivalenceClass > equivalenceClasses , MethodType methodAnalyzed ) { if ( ! this . HasTypeVariables ( ) ) return this ; ClassTypeProxy newClassProxy = ( ClassTypeProxy ) this . MemberwiseClone ( ) ; if ( newClassProxy . realType != null ) newClassProxy . realType = ( ClassType ) newClassProxy . realType . Clone ( clonedTypeVariables , equivalenceClasses , methodAnalyzed ) ; return newClassProxy ; }
Clones a type to be used in SSA.
Clones a type to be used in SSA .
The cloned type
The cloned type
clonedTypeVariables
IDictionary<int, TypeVariable>
WriteType variables that have been cloned.
WriteType variables that have been cloned .
equivalenceClasses
IList<EquivalenceClass>
Equivalence classes of the type cloned variables. These
equivalence classes need to be updated with the new cloned type variables.
Equivalence classes of the type cloned variables . These equivalence classes need to be updated with the new cloned type variables .
methodAnalyzed
MethodType
The method that is being analyzed when the operation is performed.
The method that is being analyzed when the operation is performed .