Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono-tools.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Safar <marek.safar@gmail.com>2011-10-25 12:17:34 +0400
committerMarek Safar <marek.safar@gmail.com>2011-10-25 12:17:34 +0400
commit06f6083d687325f92a9b5f80c3d1b1f38f286e4e (patch)
treec68598a8840714bc127e364be4d34cdde3fa7cf6 /gui-compare
parent7550daf6cf6b9b6d859685b91671e8c2484d2866 (diff)
Show differences in property accessors
Diffstat (limited to 'gui-compare')
-rw-r--r--gui-compare/CompareContext.cs23
1 files changed, 23 insertions, 0 deletions
diff --git a/gui-compare/CompareContext.cs b/gui-compare/CompareContext.cs
index e4b50ec2..708150f3 100644
--- a/gui-compare/CompareContext.cs
+++ b/gui-compare/CompareContext.cs
@@ -455,6 +455,29 @@ namespace GuiCompare {
} else if (reference_list[m] is CompProperty) {
var m1 = ((CompProperty) reference_list[m]).GetMethods ();
var m2 = ((CompProperty) target_list[a]).GetMethods ();
+ if (m1.Count != m2.Count) {
+ comparison.AddError (String.Format ("Expected {0} accessors but found {1}", m1.Count, m2.Count));
+ comparison.Status = ComparisonStatus.Error;
+ } else {
+ for (int i = 0; i < m1.Count; ++i) {
+ string reference_access = ((CompMember) m1[i]).GetMemberAccess();
+ string target_access = ((CompMember) m2[i]).GetMemberAccess();
+ if (reference_access != target_access) {
+ // Try to give some hints to the developer, best we can do with
+ // strings.
+ string extra_msg = "";
+ if (reference_access.IndexOf ("Private, Final, Virtual, HideBySig") != -1 &&
+ target_access.IndexOf ("Public, HideBySig") != -1){
+ extra_msg = "\n\t\t<b>Hint:</b> reference uses an explicit interface implementation, target doesn't";
+ }
+
+ comparison.AddError (String.Format ("reference access is '<i>{0}</i>', target access is '<i>{1}</i>'{2}",
+ reference_access, target_access, extra_msg));
+ comparison.Status = ComparisonStatus.Error;
+ break;
+ }
+ }
+ }
// Compare indexer parameters
CompareParameters (comparison, (ICompParameters) m1[0], (ICompParameters) m2[0]);