public void AddCompilationRoots(IRootingServiceProvider rootProvider) { foreach (TypeDesc type in _module.GetAllTypes()) { try { rootProvider.AddCompilationRoot(type, "Library module type"); } catch (TypeSystemException) { // TODO: fail compilation if a switch was passed // Swallow type load exceptions while rooting continue; // TODO: Log as a warning } // If this is not a generic definition, root all methods if (!type.HasInstantiation) { RootMethods(type, "Library module method", rootProvider); rootProvider.RootStaticBasesForType(type, "Library module type statics"); } } }
public void AddCompilationRoots(IRootingServiceProvider rootProvider) { foreach (TypeDesc type in _module.GetAllTypes()) { try { // Skip delegates (since their Invoke methods have no IL) // Note that this check can fail with TypeSystemException as well. if (type.IsDelegate) { continue; } rootProvider.AddCompilationRoot(type, "Library module type"); } catch (TypeSystemException) { // TODO: fail compilation if a switch was passed // Swallow type load exceptions while rooting continue; // TODO: Log as a warning } // If this is not a generic definition, root all methods if (!type.HasInstantiation) { RootMethods(type, "Library module method", rootProvider); rootProvider.RootStaticBasesForType(type, "Library module type statics"); } } }