diff options
author | Joel Martinez <joelmartinez@gmail.com> | 2018-03-08 01:20:32 +0300 |
---|---|---|
committer | Joel Martinez <joelmartinez@gmail.com> | 2018-03-08 01:20:32 +0300 |
commit | dc052209a2f56b8d872c577bcbd419fc2cd39d98 (patch) | |
tree | 2dc86594e3ada659c9e06d261681074854c8d0b4 | |
parent | aaf1318412f1db1fb0dcebf037a0bbfffca2c42d (diff) |
resolvers are now static. better error handling in c++ formattermdoc-5.5.1-preview4
4 files changed, 10 insertions, 9 deletions
diff --git a/mdoc/Consts.cs b/mdoc/Consts.cs index 60ac5ceb..e87bc790 100644 --- a/mdoc/Consts.cs +++ b/mdoc/Consts.cs @@ -3,7 +3,7 @@ namespace Mono.Documentation { public static class Consts { - public static string MonoVersion = "5.5.1.1-preview3"; + public static string MonoVersion = "5.5.1.1-preview4"; public const string DocId = "DocId"; public const string CppCli = "C++ CLI"; public const string CppCx = "C++ CX"; diff --git a/mdoc/Mono.Documentation/MDocUpdater.cs b/mdoc/Mono.Documentation/MDocUpdater.cs index 074967a5..eecebb2c 100644 --- a/mdoc/Mono.Documentation/MDocUpdater.cs +++ b/mdoc/Mono.Documentation/MDocUpdater.cs @@ -310,6 +310,7 @@ namespace Mono.Documentation string[] prefixesToAvoid = { "get_", "set_", "add_", "remove_", "raise_" }; foreach (var assemblySet in this.assemblies) { + using (assemblySet) { Console.Write ("."); foreach (var assembly in assemblySet.Assemblies) diff --git a/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppCxFullMemberFormatter.cs b/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppCxFullMemberFormatter.cs index 2bc8cc7c..99db15a2 100644 --- a/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppCxFullMemberFormatter.cs +++ b/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppCxFullMemberFormatter.cs @@ -403,7 +403,7 @@ namespace Mono.Documentation.Updater.Formatters.CppFormatters } if (typedef.IsValueType && !typedef.IsEnum && typedef.Fields.Any(x => - !ValueClassPropertyTypeAllowed.Contains(x.FieldType.FullName) && !x.FieldType.Resolve().IsEnum)) + !ValueClassPropertyTypeAllowed.Contains(x.FieldType.FullName) && !(x.FieldType.Resolve() != null && x.FieldType.Resolve().IsEnum))) { //A value struct or value class can contain as fields only //fundamental numeric types, enum classes, Platform::String^, or Platform::IBox <T>^ @@ -418,7 +418,7 @@ namespace Mono.Documentation.Updater.Formatters.CppFormatters condition = IsCustomAttribute(typedef) && (typedef.Fields.Any(z => !CustomAttributesFieldTypesAllowed.Contains(z.FieldType.FullName) - && !z.FieldType.Resolve().IsEnum + && !(z.FieldType.Resolve() != null && z.FieldType.Resolve().IsEnum) ) || typedef.Properties.Count != 0 || typedef.Methods.Count(x => !x.IsConstructor) != 0 diff --git a/mdoc/Mono.Documentation/Updater/Frameworks/AssemblySet.cs b/mdoc/Mono.Documentation/Updater/Frameworks/AssemblySet.cs index 70d9483e..6affe4cd 100644 --- a/mdoc/Mono.Documentation/Updater/Frameworks/AssemblySet.cs +++ b/mdoc/Mono.Documentation/Updater/Frameworks/AssemblySet.cs @@ -12,9 +12,9 @@ namespace Mono.Documentation.Updater.Frameworks /// </summary> class AssemblySet : IDisposable { - readonly BaseAssemblyResolver resolver = new Frameworks.MDocResolver (); - IAssemblyResolver cachedResolver; - IMetadataResolver metadataResolver; + static readonly BaseAssemblyResolver resolver = new Frameworks.MDocResolver (); + static IAssemblyResolver cachedResolver; + static IMetadataResolver metadataResolver; HashSet<string> assemblyPaths = new HashSet<string> (); Dictionary<string, bool> assemblyPathsMap = new Dictionary<string, bool> (); @@ -27,8 +27,8 @@ namespace Mono.Documentation.Updater.Frameworks public AssemblySet (string name, IEnumerable<string> paths, IEnumerable<string> resolverSearchPaths, IEnumerable<string> imports = null, string version = null, string id = null) { - this.cachedResolver = new CachedResolver (this.resolver); - this.metadataResolver = new Frameworks.MDocMetadataResolver (this.cachedResolver); + cachedResolver = cachedResolver ?? new CachedResolver (resolver); + metadataResolver = metadataResolver ?? new Frameworks.MDocMetadataResolver (cachedResolver); Name = name; Version = version; @@ -130,7 +130,7 @@ namespace Mono.Documentation.Updater.Frameworks IEnumerable<AssemblyDefinition> LoadAllAssemblies () { foreach (var path in this.assemblyPaths) { - var assembly = MDocUpdater.Instance.LoadAssembly (path, this.metadataResolver, this.cachedResolver); + var assembly = MDocUpdater.Instance.LoadAssembly (path, metadataResolver, cachedResolver); if (assembly != null) { foreach (var type in assembly.MainModule.ExportedTypes.Where (t => t.IsForwarder).Select (t => t.FullName)) forwardedTypes.Add (type); |