/// <summary> /// To clone one simple clone type in the SSA algorithm /// </summary> /// <param name="typeExpression">The type to be cloned</param> /// <param name="methodAnalyzed">The method that is being analyzed when the operation is performed.</param> /// <returns>The cloned type</returns> public static TypeExpression CloneType(TypeExpression typeExpression, MethodType methodAnalyzed) { IDictionary <int, TypeVariable> clonedTypeVariables = new Dictionary <int, TypeVariable>(); IList <EquivalenceClass> equivalenceClasses = new List <EquivalenceClass>(); TypeExpression newTypeExpression = typeExpression.Clone(clonedTypeVariables, equivalenceClasses, methodAnalyzed); CloneEquivalenceClasses(clonedTypeVariables, equivalenceClasses, methodAnalyzed); return(newTypeExpression); }