Mono.CSharp.BuildinTypes.CheckDefinitions C# (CSharp) Method

CheckDefinitions() public method

public CheckDefinitions ( ModuleContainer module ) : bool
module ModuleContainer
return bool
		public bool CheckDefinitions (ModuleContainer module)
		{
			var ctx = module.Compiler;
			foreach (var p in types) {
				var found = PredefinedType.Resolve (module, p.Kind, p.Namespace, p.Name, p.Arity, Location.Null);
				if (found == null || found == p)
					continue;

				var tc = found.MemberDefinition as TypeContainer;
				if (tc != null) {
					var ns = module.GlobalRootNamespace.GetNamespace (p.Namespace, false);
					ns.ReplaceTypeWithPredefined (found, p);

					tc.SetPredefinedSpec (p);
					p.SetDefinition (found);
				}
			}

			if (ctx.Report.Errors != 0)
				return false;

			// Set internal build-in types
			Dynamic.SetDefinition (Object);
			Null.SetDefinition (Object);

			return true;
		}
	}