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

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeffrey Stedfast <jeff@xamarin.com>2012-06-13 22:28:03 +0400
committerJeffrey Stedfast <jeff@xamarin.com>2012-06-13 22:31:48 +0400
commit15e054f3466545f41293cd9fbfe54f0f993b1a8c (patch)
tree3840eb0efcd195b207dbb7a79da1383160f22eab
parent83c58f371d0b3f36a780ca017cb00f9c6ad1bbba (diff)
[MacDev] Ignore duplicate NSObject subclassed types.
Fixes bug #5606.
-rwxr-xr-xmain/src/addins/MonoDevelop.MacDev/ObjCIntegration/NSObjectProjectInfo.cs8
1 files changed, 8 insertions, 0 deletions
diff --git a/main/src/addins/MonoDevelop.MacDev/ObjCIntegration/NSObjectProjectInfo.cs b/main/src/addins/MonoDevelop.MacDev/ObjCIntegration/NSObjectProjectInfo.cs
index 28717c617d..49f3cee95c 100755
--- a/main/src/addins/MonoDevelop.MacDev/ObjCIntegration/NSObjectProjectInfo.cs
+++ b/main/src/addins/MonoDevelop.MacDev/ObjCIntegration/NSObjectProjectInfo.cs
@@ -76,11 +76,13 @@ namespace MonoDevelop.MacDev.ObjCIntegration
{
if (!needsUpdating)
return;
+
foreach (DotNetProject r in dom.ReferencedProjects) {
var info = infoService.GetProjectInfo (r);
if (info != null)
info.Update ();
}
+
TypeSystemService.ForceUpdate (dom);
objcTypes.Clear ();
cliTypes.Clear ();
@@ -90,6 +92,9 @@ namespace MonoDevelop.MacDev.ObjCIntegration
foreach (var type in infoService.GetRegisteredObjects (dom, dom.Compilation.MainAssembly)) {
if (objcTypes.ContainsKey (type.ObjCName)) {
var other = objcTypes[type.ObjCName];
+ if (other.CliName == type.CliName)
+ continue;
+
throw new ArgumentException (string.Format ("Multiple types ({0} and {1}) registered with the same Objective-C name: {2}", type.CliName, other.CliName, type.ObjCName));
}
@@ -101,6 +106,9 @@ namespace MonoDevelop.MacDev.ObjCIntegration
foreach (var type in infoService.GetRegisteredObjects (dom, refAssembly)) {
if (refObjcTypes.ContainsKey (type.ObjCName)) {
var other = refObjcTypes[type.ObjCName];
+ if (other.CliName == type.CliName)
+ continue;
+
throw new ArgumentException (string.Format ("Multiple types ({0} and {1}) registered with the same Objective-C name: {2}", type.CliName, other.CliName, type.ObjCName));
}