+ static void ReportOverloadedMethodClsDifference (MemberSpec a, MemberSpec b, int res, Report report)
+ {
+ var last = GetLaterDefinedMember (a, b);
+ if (last == a.MemberDefinition) {
+ report.SymbolRelatedToPreviousError (b);
+ } else {
+ report.SymbolRelatedToPreviousError (a);
+ }
+
+ if ((res & 1) != 0) {
+ report.Warning (3006, 1, last.Location,
+ "Overloaded method `{0}' differing only in ref or out, or in array rank, is not CLS-compliant",
+ last.GetSignatureForError ());
+ }
+
+ if ((res & 2) != 0) {
+ report.Warning (3007, 1, last.Location,
+ "Overloaded method `{0}' differing only by unnamed array types is not CLS-compliant",
+ last.GetSignatureForError ());
+ }
+ }
+