diff options
author | Jeffrey Stedfast <jeff@xamarin.com> | 2012-06-13 22:28:03 +0400 |
---|---|---|
committer | Jeffrey Stedfast <jeff@xamarin.com> | 2012-06-13 22:31:48 +0400 |
commit | 15e054f3466545f41293cd9fbfe54f0f993b1a8c (patch) | |
tree | 3840eb0efcd195b207dbb7a79da1383160f22eab | |
parent | 83c58f371d0b3f36a780ca017cb00f9c6ad1bbba (diff) |
[MacDev] Ignore duplicate NSObject subclassed types.
Fixes bug #5606.
-rwxr-xr-x | main/src/addins/MonoDevelop.MacDev/ObjCIntegration/NSObjectProjectInfo.cs | 8 |
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)); } |