diff --git a/YamlDotNet/Core/Constants.cs b/YamlDotNet/Core/Constants.cs index 8ac19e9b2..ca2db896c 100644 --- a/YamlDotNet/Core/Constants.cs +++ b/YamlDotNet/Core/Constants.cs @@ -28,11 +28,11 @@ namespace YamlDotNet.Core /// public static class Constants { - public static readonly TagDirective[] DefaultTagDirectives = - [ + public static readonly TagDirective[] DefaultTagDirectives = new [] + { new TagDirective("!", "!"), new TagDirective("!!", "tag:yaml.org,2002:") - ]; + }; public const int MajorVersion = 1; public const int MinorVersion = 3; diff --git a/YamlDotNet/Core/Emitter.cs b/YamlDotNet/Core/Emitter.cs index 01824d10b..49975e062 100644 --- a/YamlDotNet/Core/Emitter.cs +++ b/YamlDotNet/Core/Emitter.cs @@ -41,7 +41,7 @@ public class Emitter : IEmitter private static readonly Regex UriReplacer = new Regex(@"[^0-9A-Za-z_\-;?@=$~\\\)\]/:&+,\.\*\(\[!]", StandardRegexOptions.Compiled | RegexOptions.Singleline); - private static readonly string[] NewLineSeparators = ["\r\n", "\r", "\n"]; + private static readonly string[] NewLineSeparators = new []{"\r\n", "\r", "\n"}; private readonly TextWriter output; private readonly bool outputUsesUnicodeEncoding; @@ -56,7 +56,7 @@ public class Emitter : IEmitter private readonly Stack states = new Stack(); private readonly Queue events = new Queue(); private readonly Stack indents = new Stack(); - private readonly TagDirectiveCollection tagDirectives = []; + private readonly TagDirectiveCollection tagDirectives = new (); private int indent; private int flowLevel; private bool isMappingContext; diff --git a/YamlDotNet/Core/MergingParser.cs b/YamlDotNet/Core/MergingParser.cs index 14c59393c..a021340c4 100644 --- a/YamlDotNet/Core/MergingParser.cs +++ b/YamlDotNet/Core/MergingParser.cs @@ -173,9 +173,9 @@ private sealed class ParsingEventCollection : IEnumerable node, IEnumerable items) diff --git a/YamlDotNet/Core/Parser.cs b/YamlDotNet/Core/Parser.cs index db4534570..878885ead 100644 --- a/YamlDotNet/Core/Parser.cs +++ b/YamlDotNet/Core/Parser.cs @@ -36,7 +36,7 @@ namespace YamlDotNet.Core public class Parser : IParser { private readonly Stack states = new Stack(); - private readonly TagDirectiveCollection tagDirectives = []; + private readonly TagDirectiveCollection tagDirectives = new (); private ParserState state; private readonly IScanner scanner; diff --git a/YamlDotNet/Core/Scanner.cs b/YamlDotNet/Core/Scanner.cs index 291997b88..5fd884964 100644 --- a/YamlDotNet/Core/Scanner.cs +++ b/YamlDotNet/Core/Scanner.cs @@ -2518,7 +2518,7 @@ private string ScanTagUri(string? head, Mark start) return result; } - private static readonly byte[] EmptyBytes = []; + private static readonly byte[] EmptyBytes = new byte[]{}; /// /// Decode an URI-escape sequence corresponding to a single UTF-8 character. diff --git a/YamlDotNet/Helpers/FsharpHelper.cs b/YamlDotNet/Helpers/FsharpHelper.cs index 6339a6807..efc1cd385 100644 --- a/YamlDotNet/Helpers/FsharpHelper.cs +++ b/YamlDotNet/Helpers/FsharpHelper.cs @@ -73,7 +73,7 @@ public static bool IsFsharpListType(Type t) .GetType("Microsoft.FSharp.Collections.ListModule") .GetMethod("OfArray") .MakeGenericMethod(itemsType) - .Invoke(null, [arr]); + .Invoke(null, new []{ arr }); return fsharpList; } diff --git a/YamlDotNet/Helpers/OrderedDictionary.cs b/YamlDotNet/Helpers/OrderedDictionary.cs index 9d1ab796f..63984069c 100644 --- a/YamlDotNet/Helpers/OrderedDictionary.cs +++ b/YamlDotNet/Helpers/OrderedDictionary.cs @@ -76,7 +76,7 @@ public OrderedDictionary() : this(EqualityComparer.Default) public OrderedDictionary(IEqualityComparer comparer) { - list = []; + list = new (); dictionary = new Dictionary(comparer); this.comparer = comparer; } @@ -192,7 +192,7 @@ public bool TryGetValue(TKey key, [MaybeNullWhen(false)] out TValue value) => internal void OnDeserializedMethod(StreamingContext context) { // Reconstruct the dictionary from the serialized list - dictionary = []; + dictionary = new (); foreach (var kvp in list) { dictionary[kvp.Key] = kvp.Value; diff --git a/YamlDotNet/ReflectionExtensions.cs b/YamlDotNet/ReflectionExtensions.cs index 9cac5d066..ff78e881c 100644 --- a/YamlDotNet/ReflectionExtensions.cs +++ b/YamlDotNet/ReflectionExtensions.cs @@ -68,7 +68,7 @@ public static bool IsGenericTypeDefinition(this Type type) static bool IsGenericDefinitionOfType(Type t, object? context) { - return t.IsGenericType && t.GetGenericTypeDefinition() == (Type)context; + return t.IsGenericType && context is Type type && t.GetGenericTypeDefinition() == type; } } diff --git a/YamlDotNet/RepresentationModel/DocumentLoadingState.cs b/YamlDotNet/RepresentationModel/DocumentLoadingState.cs index be41779be..39e0142e0 100644 --- a/YamlDotNet/RepresentationModel/DocumentLoadingState.cs +++ b/YamlDotNet/RepresentationModel/DocumentLoadingState.cs @@ -31,8 +31,8 @@ namespace YamlDotNet.RepresentationModel /// internal class DocumentLoadingState { - private readonly Dictionary anchors = []; - private readonly List nodesWithUnresolvedAliases = []; + private readonly Dictionary anchors = new (); + private readonly List nodesWithUnresolvedAliases = new (); /// /// Adds the specified node to the anchor list. diff --git a/YamlDotNet/RepresentationModel/EmitterState.cs b/YamlDotNet/RepresentationModel/EmitterState.cs index e3d444bf4..bddb0ff4a 100644 --- a/YamlDotNet/RepresentationModel/EmitterState.cs +++ b/YamlDotNet/RepresentationModel/EmitterState.cs @@ -33,6 +33,6 @@ internal class EmitterState /// Gets the already emitted anchors. /// /// The emitted anchors. - public HashSet EmittedAnchors { get; } = []; + public HashSet EmittedAnchors { get; } = new (); } } diff --git a/YamlDotNet/RepresentationModel/YamlDocument.cs b/YamlDotNet/RepresentationModel/YamlDocument.cs index 4dbc16ee9..121653201 100644 --- a/YamlDotNet/RepresentationModel/YamlDocument.cs +++ b/YamlDotNet/RepresentationModel/YamlDocument.cs @@ -90,11 +90,11 @@ internal YamlDocument(IParser parser) /// private class AnchorAssigningVisitor : YamlVisitorBase { - private readonly HashSet existingAnchors = []; + private readonly HashSet existingAnchors = new (); /// /// Key: Node, Value: IsDuplicate /// - private readonly Dictionary visitedNodes = []; + private readonly Dictionary visitedNodes = new (); public void AssignAnchors(YamlDocument document) { diff --git a/YamlDotNet/RepresentationModel/YamlMappingNode.cs b/YamlDotNet/RepresentationModel/YamlMappingNode.cs index f22380c1e..5d8c573a1 100644 --- a/YamlDotNet/RepresentationModel/YamlMappingNode.cs +++ b/YamlDotNet/RepresentationModel/YamlMappingNode.cs @@ -36,7 +36,7 @@ namespace YamlDotNet.RepresentationModel /// public sealed class YamlMappingNode : YamlNode, IEnumerable>, IYamlConvertible { - private readonly OrderedDictionary children = []; + private readonly OrderedDictionary children = new(); /// /// Gets the children of the current node. @@ -196,13 +196,13 @@ internal override void ResolveAliases(DocumentLoadingState state) { if (entry.Key is YamlAliasNode) { - keysToUpdate ??= []; + keysToUpdate ??= new (); // TODO: The representation model should be redesigned, because here the anchor could be null but that would be invalid YAML keysToUpdate.Add(entry.Key, state.GetNode(entry.Key.Anchor!, entry.Key.Start, entry.Key.End)); } if (entry.Value is YamlAliasNode) { - valuesToUpdate ??= []; + valuesToUpdate ??= new (); // TODO: The representation model should be redesigned, because here the anchor could be null but that would be invalid YAML valuesToUpdate.Add(entry.Key, state.GetNode(entry.Value.Anchor!, entry.Value.Start, entry.Value.End)); } diff --git a/YamlDotNet/RepresentationModel/YamlSequenceNode.cs b/YamlDotNet/RepresentationModel/YamlSequenceNode.cs index 9526a50d6..de2fada27 100644 --- a/YamlDotNet/RepresentationModel/YamlSequenceNode.cs +++ b/YamlDotNet/RepresentationModel/YamlSequenceNode.cs @@ -36,7 +36,7 @@ namespace YamlDotNet.RepresentationModel [DebuggerDisplay("Count = {children.Count}")] public sealed class YamlSequenceNode : YamlNode, IEnumerable, IYamlConvertible { - private readonly List children = []; + private readonly List children = new (); /// /// Gets the collection of child nodes. diff --git a/YamlDotNet/RepresentationModel/YamlStream.cs b/YamlDotNet/RepresentationModel/YamlStream.cs index 326f4526b..a2ea8879f 100644 --- a/YamlDotNet/RepresentationModel/YamlStream.cs +++ b/YamlDotNet/RepresentationModel/YamlStream.cs @@ -31,7 +31,7 @@ namespace YamlDotNet.RepresentationModel /// public class YamlStream : IEnumerable { - private readonly List documents = []; + private readonly List documents = new (); /// /// Gets the documents inside the stream. diff --git a/YamlDotNet/Serialization/BufferedDeserialization/TypeDiscriminatingNodeDeserializerOptions.cs b/YamlDotNet/Serialization/BufferedDeserialization/TypeDiscriminatingNodeDeserializerOptions.cs index a0289b964..48c6deb3f 100644 --- a/YamlDotNet/Serialization/BufferedDeserialization/TypeDiscriminatingNodeDeserializerOptions.cs +++ b/YamlDotNet/Serialization/BufferedDeserialization/TypeDiscriminatingNodeDeserializerOptions.cs @@ -30,7 +30,7 @@ namespace YamlDotNet.Serialization.BufferedDeserialization { public class TypeDiscriminatingNodeDeserializerOptions : ITypeDiscriminatingNodeDeserializerOptions { - internal readonly List discriminators = []; + internal readonly List discriminators = new (); /// /// Adds an to be checked by the TypeDiscriminatingNodeDeserializer. diff --git a/YamlDotNet/Serialization/BufferedDeserialization/TypeDiscriminators/UniqueKeyTypeDiscriminator.cs b/YamlDotNet/Serialization/BufferedDeserialization/TypeDiscriminators/UniqueKeyTypeDiscriminator.cs index 9da434a08..f226cc1f4 100644 --- a/YamlDotNet/Serialization/BufferedDeserialization/TypeDiscriminators/UniqueKeyTypeDiscriminator.cs +++ b/YamlDotNet/Serialization/BufferedDeserialization/TypeDiscriminators/UniqueKeyTypeDiscriminator.cs @@ -76,6 +76,7 @@ public bool TryDiscriminate(IParser parser, out Type? suggestedType) scalar => this.typeMapping.ContainsKey(scalar.Value), out var key, out var _)) + if (key != null) // Sorry, Unity's compiler didn't figure this one out on its own. Yes this statement shouldn't ever be false. { suggestedType = this.typeMapping[key.Value]; return true; diff --git a/YamlDotNet/Serialization/BuilderSkeleton.cs b/YamlDotNet/Serialization/BuilderSkeleton.cs index a19d24146..e940008c4 100755 --- a/YamlDotNet/Serialization/BuilderSkeleton.cs +++ b/YamlDotNet/Serialization/BuilderSkeleton.cs @@ -58,7 +58,7 @@ internal BuilderSkeleton(ITypeResolver typeResolver) { typeof(SystemTypeConverter), _ => new SystemTypeConverter() } }; - typeInspectorFactories = []; + typeInspectorFactories = new (); this.typeResolver = typeResolver ?? throw new ArgumentNullException(nameof(typeResolver)); settings = new Settings(); } diff --git a/YamlDotNet/Serialization/DeserializerBuilder.cs b/YamlDotNet/Serialization/DeserializerBuilder.cs index 3c0f27b71..9bf729143 100755 --- a/YamlDotNet/Serialization/DeserializerBuilder.cs +++ b/YamlDotNet/Serialization/DeserializerBuilder.cs @@ -71,7 +71,7 @@ public sealed class DeserializerBuilder : BuilderSkeleton public DeserializerBuilder() : base(new StaticTypeResolver()) { - typeMappings = []; + typeMappings = new (); objectFactory = new Lazy(() => new DefaultObjectFactory(typeMappings, settings), true); tagMappings = new Dictionary @@ -90,6 +90,8 @@ public DeserializerBuilder() typeInspectorFactories.Add(typeof(YamlAttributeOverridesInspector), inner => overrides != null ? new YamlAttributeOverridesInspector(inner, overrides.Clone()) : inner); typeInspectorFactories.Add(typeof(ReadableAndWritablePropertiesTypeInspector), inner => new ReadableAndWritablePropertiesTypeInspector(inner)); + typeConverter = new ReflectionTypeConverter(); + nodeDeserializerFactories = new LazyComponentRegistrationList { { typeof(YamlConvertibleNodeDeserializer), _ => new YamlConvertibleNodeDeserializer(objectFactory.Value) }, @@ -125,8 +127,6 @@ public DeserializerBuilder() { typeof(PreventUnknownTagsNodeTypeResolver), _ => new PreventUnknownTagsNodeTypeResolver() }, { typeof(DefaultContainersNodeTypeResolver), _ => new DefaultContainersNodeTypeResolver() } }; - - typeConverter = new ReflectionTypeConverter(); } protected override DeserializerBuilder Self { get { return this; } } diff --git a/YamlDotNet/Serialization/IObjectFactory.cs b/YamlDotNet/Serialization/IObjectFactory.cs index 39d8e7c7f..9df8fdbab 100644 --- a/YamlDotNet/Serialization/IObjectFactory.cs +++ b/YamlDotNet/Serialization/IObjectFactory.cs @@ -77,12 +77,12 @@ public interface IObjectFactory /// Executes the methods on the object that has the attribute /// /// - void ExecuteOnSerializing(object value); + void ExecuteOnSerializing(object? value); /// /// Executes the methods on the object that has the attribute /// /// - void ExecuteOnSerialized(object value); + void ExecuteOnSerialized(object? value); } } diff --git a/YamlDotNet/Serialization/IObjectGraphTraversalStrategy.cs b/YamlDotNet/Serialization/IObjectGraphTraversalStrategy.cs index a8fd00f1d..fecf6ab66 100644 --- a/YamlDotNet/Serialization/IObjectGraphTraversalStrategy.cs +++ b/YamlDotNet/Serialization/IObjectGraphTraversalStrategy.cs @@ -33,6 +33,6 @@ public interface IObjectGraphTraversalStrategy /// An that is to be notified during the traversal. /// A that will be passed to the . /// The serializer to use to serialize complex objects. - void Traverse(IObjectDescriptor graph, IObjectGraphVisitor visitor, TContext context, ObjectSerializer serializer); + void Traverse(IObjectDescriptor graph, IObjectGraphVisitor visitor, TContext context, ObjectSerializer serializer) where TContext : notnull; } } diff --git a/YamlDotNet/Serialization/LazyComponentRegistrationList.cs b/YamlDotNet/Serialization/LazyComponentRegistrationList.cs index 03fb2cf71..3e9e5a41e 100644 --- a/YamlDotNet/Serialization/LazyComponentRegistrationList.cs +++ b/YamlDotNet/Serialization/LazyComponentRegistrationList.cs @@ -28,7 +28,7 @@ namespace YamlDotNet.Serialization { internal sealed class LazyComponentRegistrationList : IEnumerable> { - private readonly List entries = []; + private readonly List entries = new (); public LazyComponentRegistrationList Clone() { diff --git a/YamlDotNet/Serialization/NodeDeserializers/ObjectNodeDeserializer.cs b/YamlDotNet/Serialization/NodeDeserializers/ObjectNodeDeserializer.cs index bc3c69137..16f85a192 100644 --- a/YamlDotNet/Serialization/NodeDeserializers/ObjectNodeDeserializer.cs +++ b/YamlDotNet/Serialization/NodeDeserializers/ObjectNodeDeserializer.cs @@ -176,7 +176,7 @@ public bool Deserialize(IParser parser, Type expectedType, Func public override void ExecuteOnDeserializing(object value) => ExecuteState(typeof(OnDeserializingAttribute), value); - public override void ExecuteOnSerialized(object value) => + public override void ExecuteOnSerialized(object? value) => ExecuteState(typeof(OnSerializedAttribute), value); - public override void ExecuteOnSerializing(object value) => + public override void ExecuteOnSerializing(object? value) => ExecuteState(typeof(OnSerializingAttribute), value); - private void ExecuteState(Type attributeType, object value) + private void ExecuteState(Type attributeType, object? value) { if (value == null) { diff --git a/YamlDotNet/Serialization/ObjectFactories/ObjectFactoryBase.cs b/YamlDotNet/Serialization/ObjectFactories/ObjectFactoryBase.cs index 3c363cee3..a5874a09b 100644 --- a/YamlDotNet/Serialization/ObjectFactories/ObjectFactoryBase.cs +++ b/YamlDotNet/Serialization/ObjectFactories/ObjectFactoryBase.cs @@ -44,12 +44,12 @@ public virtual void ExecuteOnDeserializing(object value) } /// - public virtual void ExecuteOnSerialized(object value) + public virtual void ExecuteOnSerialized(object? value) { } /// - public virtual void ExecuteOnSerializing(object value) + public virtual void ExecuteOnSerializing(object? value) { } diff --git a/YamlDotNet/Serialization/ObjectFactories/StaticObjectFactory.cs b/YamlDotNet/Serialization/ObjectFactories/StaticObjectFactory.cs index 93a656462..50cadfbb1 100644 --- a/YamlDotNet/Serialization/ObjectFactories/StaticObjectFactory.cs +++ b/YamlDotNet/Serialization/ObjectFactories/StaticObjectFactory.cs @@ -126,8 +126,8 @@ public bool GetDictionary(IObjectDescriptor descriptor, out IDictionary? diction public abstract void ExecuteOnDeserialized(object value); - public abstract void ExecuteOnSerializing(object value); + public abstract void ExecuteOnSerializing(object? value); - public abstract void ExecuteOnSerialized(object value); + public abstract void ExecuteOnSerialized(object? value); } } diff --git a/YamlDotNet/Serialization/ObjectGraphTraversalStrategies/FullObjectGraphTraversalStrategy.cs b/YamlDotNet/Serialization/ObjectGraphTraversalStrategies/FullObjectGraphTraversalStrategy.cs index 3a26a1199..90ce5eb8c 100644 --- a/YamlDotNet/Serialization/ObjectGraphTraversalStrategies/FullObjectGraphTraversalStrategy.cs +++ b/YamlDotNet/Serialization/ObjectGraphTraversalStrategies/FullObjectGraphTraversalStrategy.cs @@ -74,7 +74,7 @@ public ObjectPathSegment(object name, IObjectDescriptor value) } } - protected virtual void Traverse(IPropertyDescriptor? propertyDescriptor, object name, IObjectDescriptor value, IObjectGraphVisitor visitor, TContext context, Stack path, ObjectSerializer serializer) + protected virtual void Traverse(IPropertyDescriptor? propertyDescriptor, object name, IObjectDescriptor value, IObjectGraphVisitor visitor, TContext context, Stack path, ObjectSerializer serializer) where TContext : notnull { if (path.Count >= maxRecursion) { @@ -192,7 +192,7 @@ protected virtual void Traverse(IPropertyDescriptor? propertyDescripto } } - protected virtual void TraverseObject(IPropertyDescriptor? propertyDescriptor, IObjectDescriptor value, IObjectGraphVisitor visitor, TContext context, Stack path, ObjectSerializer serializer) + protected virtual void TraverseObject(IPropertyDescriptor? propertyDescriptor, IObjectDescriptor value, IObjectGraphVisitor visitor, TContext context, Stack path, ObjectSerializer serializer) where TContext : notnull { if (typeof(IDictionary).IsAssignableFrom(value.Type)) { @@ -201,6 +201,7 @@ protected virtual void TraverseObject(IPropertyDescriptor? propertyDes } if (objectFactory.GetDictionary(value, out var adaptedDictionary, out var genericArguments)) + if (genericArguments != null) { TraverseDictionary(propertyDescriptor, new ObjectDescriptor(adaptedDictionary, value.Type, value.StaticType, value.ScalarStyle), visitor, genericArguments[0], genericArguments[1], context, path, serializer); return; @@ -215,7 +216,7 @@ protected virtual void TraverseObject(IPropertyDescriptor? propertyDes TraverseProperties(value, visitor, context, path, serializer); } - protected virtual void TraverseDictionary(IPropertyDescriptor? propertyDescriptor, IObjectDescriptor dictionary, IObjectGraphVisitor visitor, Type keyType, Type valueType, TContext context, Stack path, ObjectSerializer serializer) + protected virtual void TraverseDictionary(IPropertyDescriptor? propertyDescriptor, IObjectDescriptor dictionary, IObjectGraphVisitor visitor, Type keyType, Type valueType, TContext context, Stack path, ObjectSerializer serializer) where TContext : notnull { visitor.VisitMappingStart(dictionary, keyType, valueType, context, serializer); @@ -237,7 +238,7 @@ protected virtual void TraverseDictionary(IPropertyDescriptor? propert visitor.VisitMappingEnd(dictionary, context, serializer); } - private void TraverseList(IPropertyDescriptor propertyDescriptor, IObjectDescriptor value, IObjectGraphVisitor visitor, TContext context, Stack path, ObjectSerializer serializer) + private void TraverseList(IPropertyDescriptor? propertyDescriptor, IObjectDescriptor value, IObjectGraphVisitor visitor, TContext context, Stack path, ObjectSerializer serializer) where TContext : notnull { var itemType = objectFactory.GetValueType(value.Type); @@ -254,7 +255,7 @@ private void TraverseList(IPropertyDescriptor propertyDescriptor, IObj visitor.VisitSequenceEnd(value, context, serializer); } - protected virtual void TraverseProperties(IObjectDescriptor value, IObjectGraphVisitor visitor, TContext context, Stack path, ObjectSerializer serializer) + protected virtual void TraverseProperties(IObjectDescriptor value, IObjectGraphVisitor visitor, TContext context, Stack path, ObjectSerializer serializer) where TContext : notnull { if (context.GetType() != typeof(Nothing)) { diff --git a/YamlDotNet/Serialization/ObjectGraphVisitors/AnchorAssigner.cs b/YamlDotNet/Serialization/ObjectGraphVisitors/AnchorAssigner.cs index 5a161b6ca..57e35a0e2 100644 --- a/YamlDotNet/Serialization/ObjectGraphVisitors/AnchorAssigner.cs +++ b/YamlDotNet/Serialization/ObjectGraphVisitors/AnchorAssigner.cs @@ -33,7 +33,7 @@ private class AnchorAssignment public AnchorName Anchor; } - private readonly Dictionary assignments = []; + private readonly Dictionary assignments = new (); private uint nextId; public AnchorAssigner(IEnumerable typeConverters) diff --git a/YamlDotNet/Serialization/ObjectGraphVisitors/AnchorAssigningObjectGraphVisitor.cs b/YamlDotNet/Serialization/ObjectGraphVisitors/AnchorAssigningObjectGraphVisitor.cs index 930b21bf8..b79c207d7 100644 --- a/YamlDotNet/Serialization/ObjectGraphVisitors/AnchorAssigningObjectGraphVisitor.cs +++ b/YamlDotNet/Serialization/ObjectGraphVisitors/AnchorAssigningObjectGraphVisitor.cs @@ -29,7 +29,7 @@ public sealed class AnchorAssigningObjectGraphVisitor : ChainedObjectGraphVisito { private readonly IEventEmitter eventEmitter; private readonly IAliasProvider aliasProvider; - private readonly HashSet emittedAliases = []; + private readonly HashSet emittedAliases = new (); public AnchorAssigningObjectGraphVisitor(IObjectGraphVisitor nextVisitor, IEventEmitter eventEmitter, IAliasProvider aliasProvider) : base(nextVisitor) diff --git a/YamlDotNet/Serialization/ObjectGraphVisitors/PreProcessingPhaseObjectGraphVisitorSkeleton.cs b/YamlDotNet/Serialization/ObjectGraphVisitors/PreProcessingPhaseObjectGraphVisitorSkeleton.cs index 7f666003e..3a56c2190 100644 --- a/YamlDotNet/Serialization/ObjectGraphVisitors/PreProcessingPhaseObjectGraphVisitorSkeleton.cs +++ b/YamlDotNet/Serialization/ObjectGraphVisitors/PreProcessingPhaseObjectGraphVisitorSkeleton.cs @@ -36,7 +36,7 @@ public abstract class PreProcessingPhaseObjectGraphVisitorSkeleton : IObjectGrap public PreProcessingPhaseObjectGraphVisitorSkeleton(IEnumerable typeConverters) { - var tcs = typeConverters?.ToArray() ?? []; + var tcs = typeConverters?.ToArray() ?? new IYamlTypeConverter[]{}; this.typeConverters = tcs; this.typeConverterCache = new TypeConverterCache(tcs); diff --git a/YamlDotNet/Serialization/SerializerBuilder.cs b/YamlDotNet/Serialization/SerializerBuilder.cs index bae3896d5..cde8abadc 100755 --- a/YamlDotNet/Serialization/SerializerBuilder.cs +++ b/YamlDotNet/Serialization/SerializerBuilder.cs @@ -55,7 +55,7 @@ public sealed class SerializerBuilder : BuilderSkeleton private readonly LazyComponentRegistrationList, IObjectGraphVisitor> preProcessingPhaseObjectGraphVisitorFactories; private readonly LazyComponentRegistrationList> emissionPhaseObjectGraphVisitorFactories; private readonly LazyComponentRegistrationList eventEmitterFactories; - private readonly Dictionary tagMappings = []; + private readonly Dictionary tagMappings = new (); private readonly IObjectFactory objectFactory; private int maximumRecursion = 50; private EmitterSettings emitterSettings = EmitterSettings.Default; diff --git a/YamlDotNet/Serialization/StaticBuilderSkeleton.cs b/YamlDotNet/Serialization/StaticBuilderSkeleton.cs index 628753599..0a210b9b9 100644 --- a/YamlDotNet/Serialization/StaticBuilderSkeleton.cs +++ b/YamlDotNet/Serialization/StaticBuilderSkeleton.cs @@ -50,7 +50,7 @@ internal StaticBuilderSkeleton(ITypeResolver typeResolver) { typeof(GuidConverter), _ => new GuidConverter(false) }, }; - typeInspectorFactories = []; + typeInspectorFactories = new (); this.typeResolver = typeResolver ?? throw new ArgumentNullException(nameof(typeResolver)); settings = new Settings(); } diff --git a/YamlDotNet/Serialization/StaticDeserializerBuilder.cs b/YamlDotNet/Serialization/StaticDeserializerBuilder.cs index 572e53c95..c7b37a05d 100644 --- a/YamlDotNet/Serialization/StaticDeserializerBuilder.cs +++ b/YamlDotNet/Serialization/StaticDeserializerBuilder.cs @@ -69,7 +69,7 @@ public StaticDeserializerBuilder(StaticContext context) { this.context = context; factory = context.GetFactory(); - typeMappings = []; + typeMappings = new (); tagMappings = new Dictionary { @@ -85,6 +85,8 @@ public StaticDeserializerBuilder(StaticContext context) typeInspectorFactories.Add(typeof(NamingConventionTypeInspector), inner => namingConvention is NullNamingConvention ? inner : new NamingConventionTypeInspector(inner, namingConvention)); typeInspectorFactories.Add(typeof(YamlAttributesTypeInspector), inner => new YamlAttributesTypeInspector(inner)); + typeConverter = new NullTypeConverter(); + nodeDeserializerFactories = new LazyComponentRegistrationList { { typeof(YamlConvertibleNodeDeserializer), _ => new YamlConvertibleNodeDeserializer(factory) }, @@ -117,8 +119,6 @@ public StaticDeserializerBuilder(StaticContext context) { typeof(PreventUnknownTagsNodeTypeResolver), _ => new PreventUnknownTagsNodeTypeResolver() }, { typeof(DefaultContainersNodeTypeResolver), _ => new DefaultContainersNodeTypeResolver() } }; - - typeConverter = new NullTypeConverter(); } protected override StaticDeserializerBuilder Self { get { return this; } } diff --git a/YamlDotNet/Serialization/StaticSerializerBuilder.cs b/YamlDotNet/Serialization/StaticSerializerBuilder.cs index 4c165fbc3..c99006c9a 100644 --- a/YamlDotNet/Serialization/StaticSerializerBuilder.cs +++ b/YamlDotNet/Serialization/StaticSerializerBuilder.cs @@ -52,7 +52,7 @@ public sealed class StaticSerializerBuilder : StaticBuilderSkeleton, IObjectGraphVisitor> preProcessingPhaseObjectGraphVisitorFactories; private readonly LazyComponentRegistrationList> emissionPhaseObjectGraphVisitorFactories; private readonly LazyComponentRegistrationList eventEmitterFactories; - private readonly Dictionary tagMappings = []; + private readonly Dictionary tagMappings = new (); private int maximumRecursion = 50; private EmitterSettings emitterSettings = EmitterSettings.Default; private DefaultValuesHandling defaultValuesHandlingConfiguration = DefaultValuesHandling.Preserve; diff --git a/YamlDotNet/Serialization/StreamFragment.cs b/YamlDotNet/Serialization/StreamFragment.cs index 632a0de97..88d713ddd 100644 --- a/YamlDotNet/Serialization/StreamFragment.cs +++ b/YamlDotNet/Serialization/StreamFragment.cs @@ -32,7 +32,7 @@ namespace YamlDotNet.Serialization /// public sealed class StreamFragment : IYamlConvertible { - private readonly List events = []; + private readonly List events = new (); /// /// Gets or sets the events. diff --git a/YamlDotNet/Serialization/TagMappings.cs b/YamlDotNet/Serialization/TagMappings.cs index 00b63cbc8..03afa77e8 100644 --- a/YamlDotNet/Serialization/TagMappings.cs +++ b/YamlDotNet/Serialization/TagMappings.cs @@ -36,7 +36,7 @@ public sealed class TagMappings /// public TagMappings() { - mappings = []; + mappings = new (); } /// diff --git a/YamlDotNet/Serialization/Utilities/ObjectAnchorCollection.cs b/YamlDotNet/Serialization/Utilities/ObjectAnchorCollection.cs index 4abde9d3e..a92ee2a71 100644 --- a/YamlDotNet/Serialization/Utilities/ObjectAnchorCollection.cs +++ b/YamlDotNet/Serialization/Utilities/ObjectAnchorCollection.cs @@ -27,8 +27,8 @@ namespace YamlDotNet.Serialization.Utilities { internal sealed class ObjectAnchorCollection { - private readonly Dictionary objectsByAnchor = []; - private readonly Dictionary anchorsByObject = []; + private readonly Dictionary objectsByAnchor = new (); + private readonly Dictionary anchorsByObject = new (); /// /// Adds the specified anchor. diff --git a/YamlDotNet/Serialization/Utilities/SerializerState.cs b/YamlDotNet/Serialization/Utilities/SerializerState.cs index 944af3ee8..44c5917fe 100644 --- a/YamlDotNet/Serialization/Utilities/SerializerState.cs +++ b/YamlDotNet/Serialization/Utilities/SerializerState.cs @@ -31,7 +31,7 @@ namespace YamlDotNet.Serialization.Utilities /// public sealed class SerializerState : IDisposable { - private readonly Dictionary items = []; + private readonly Dictionary items = new (); public T Get() where T : class, new() diff --git a/YamlDotNet/Serialization/Utilities/TypeConverter.cs b/YamlDotNet/Serialization/Utilities/TypeConverter.cs index ed2667db4..9bc928a93 100644 --- a/YamlDotNet/Serialization/Utilities/TypeConverter.cs +++ b/YamlDotNet/Serialization/Utilities/TypeConverter.cs @@ -180,7 +180,7 @@ public static T ChangeType(object? value, INamingConvention enumNamingConvent { try { - return method.Invoke(null, [value]); + return method.Invoke(null, new []{value}); } catch (TargetInvocationException ex) { @@ -200,14 +200,14 @@ public static T ChangeType(object? value, INamingConvention enumNamingConvent var parseMethod = destinationType.GetPublicStaticMethod("Parse", typeof(string), typeof(IFormatProvider)); if (parseMethod != null) { - return parseMethod.Invoke(null, [value, culture]); + return parseMethod.Invoke(null, new []{value, culture}); } // Try with - public static T Parse(string) parseMethod = destinationType.GetPublicStaticMethod("Parse", typeof(string)); if (parseMethod != null) { - return parseMethod.Invoke(null, [value]); + return parseMethod.Invoke(null, new []{value}); } } catch (TargetInvocationException ex) diff --git a/YamlDotNet/Serialization/Utilities/TypeConverterCache.cs b/YamlDotNet/Serialization/Utilities/TypeConverterCache.cs index 27516082d..9620c556a 100644 --- a/YamlDotNet/Serialization/Utilities/TypeConverterCache.cs +++ b/YamlDotNet/Serialization/Utilities/TypeConverterCache.cs @@ -36,7 +36,7 @@ internal sealed class TypeConverterCache private readonly IYamlTypeConverter[] typeConverters; private readonly ConcurrentDictionary cache = new(); - public TypeConverterCache(IEnumerable? typeConverters) : this(typeConverters?.ToArray() ?? []) + public TypeConverterCache(IEnumerable? typeConverters) : this(typeConverters?.ToArray() ?? new IYamlTypeConverter[]{}) { } diff --git a/YamlDotNet/Serialization/YamlAttributeOverrides.cs b/YamlDotNet/Serialization/YamlAttributeOverrides.cs index b71520c7c..8be14c93c 100644 --- a/YamlDotNet/Serialization/YamlAttributeOverrides.cs +++ b/YamlDotNet/Serialization/YamlAttributeOverrides.cs @@ -108,7 +108,7 @@ public int Matches(Type matchType) } } - private readonly Dictionary> overrides = []; + private readonly Dictionary> overrides = new (); [return: MaybeNull] public T GetAttribute(Type type, string member) where T : Attribute @@ -150,7 +150,7 @@ public void Add(Type type, string member, Attribute attribute) var attributeKey = new AttributeKey(attribute.GetType(), member); if (!overrides.TryGetValue(attributeKey, out var mappings)) { - mappings = []; + mappings = new (); overrides.Add(attributeKey, mappings); } else if (mappings.Contains(mapping)) diff --git a/YamlDotNet/Serialization/YamlFormatter.cs b/YamlDotNet/Serialization/YamlFormatter.cs index de0e3586f..448cde60f 100644 --- a/YamlDotNet/Serialization/YamlFormatter.cs +++ b/YamlDotNet/Serialization/YamlFormatter.cs @@ -32,12 +32,12 @@ public class YamlFormatter { CurrencyDecimalSeparator = ".", CurrencyGroupSeparator = "_", - CurrencyGroupSizes = [3], + CurrencyGroupSizes = new int[]{ 3 }, CurrencySymbol = string.Empty, CurrencyDecimalDigits = 99, NumberDecimalSeparator = ".", NumberGroupSeparator = "_", - NumberGroupSizes = [3], + NumberGroupSizes = new int[]{ 3 }, NumberDecimalDigits = 99, NaNSymbol = ".nan", PositiveInfinitySymbol = ".inf",