private bool MethodContextsAreEqual(MethodContext mc1, MethodContext mc2) {
if(mc1 == null && mc2 == null) {
return true;
}
if((mc1 == null) ^ (mc2 == null)) {
return false;
}
if(mc1.DeclaringClass != mc2.DeclaringClass
|| mc1.IsConstructor != mc2.IsConstructor
|| mc1.IsDestructor != mc2.IsDestructor
|| mc1.IsStatic != mc2.IsStatic
|| mc1.IdType != mc2.IdType
|| mc1.IdTypeIsPrimitive != mc2.IdTypeIsPrimitive
|| mc1.FormalParameters.Count != mc2.FormalParameters.Count) {
return false;
}
for(int i = 0; i < mc1.FormalParameters.Count; i++) {
if(!mc1.FormalParameters[i].Equals(mc2.FormalParameters[i])) {
return false;
}
}
return true;
}