···7474 get => _referencePath;
7575 set
7676 {
7777- if(!ReferenceEquals(_referencePath,null))
7777+ if(_referencePath != null)
7878 throw new InvalidOperationException("Can only assign namespace usage reference path once.");
7979 _referencePath = value;
8080 }
+2-9
Prexonite/Compiler/Parser.Code.cs
···174174175175 public DeclarationScopeBuilder([NotNull]SymbolStoreBuilder localScopeBuilder, QualifiedId prefix, [NotNull]LocalNamespace ns)
176176 {
177177- if (localScopeBuilder == null)
178178- throw new ArgumentNullException(nameof(localScopeBuilder));
179179- if (ns == null)
180180- throw new ArgumentNullException(nameof(ns));
181181- if (prefix == null)
182182- throw new ArgumentNullException(nameof(prefix));
183183-184184- _localScopeBuilder = localScopeBuilder;
177177+ _localScopeBuilder = localScopeBuilder ?? throw new ArgumentNullException(nameof(localScopeBuilder));
185178 _prefix = prefix;
186186- _namespace = ns;
179179+ _namespace = ns ?? throw new ArgumentNullException(nameof(ns));
187180 }
188181189182 [NotNull]
+6-9
Prexonite/Compiler/Symbolic/QualifiedId.cs
···34343535namespace Prexonite.Compiler.Symbolic
3636{
3737- public struct QualifiedId : IReadOnlyList<string>, IEquatable<QualifiedId>, IComparable<QualifiedId>
3737+ public readonly struct QualifiedId : IReadOnlyList<string>, IEquatable<QualifiedId>, IComparable<QualifiedId>
3838 {
3939 public void ToString([NotNull] TextWriter writer)
4040 {
···5656 }
5757 }
58585959- public override String ToString()
5959+ public override string ToString()
6060 {
6161 var sb = new StringWriter();
6262 ToString(sb);
···9393 return GetEnumerator();
9494 }
95959696- public int Count
9797- {
9898- get { return _elements == null ? 0 : _elements.Length; }
9999- }
9696+ public int Count => _elements?.Length ?? 0;
1009710198 public string this[int index]
10299 {
···116113 {
117114 var next = new string[_elements.Length + 1];
118115 Array.Copy(_elements,next, _elements.Length);
119119- next[next.Length - 1] = suffix;
116116+ next[^1] = suffix;
120117 return new QualifiedId(next);
121118 }
122119 }
···162159 }
163160 else
164161 {
165165- // Compare paths in revrese, becaus they are much more likely to
162162+ // Compare paths in reverse, because they are much more likely to
166163 // differ at the end than at the beginning
167164 for (var i = _elements.Length - 1; i >= 0; i++)
168165 {
···206203 public override bool Equals(object obj)
207204 {
208205 if (ReferenceEquals(null, obj)) return false;
209209- return obj is QualifiedId && Equals((QualifiedId)obj);
206206+ return obj is QualifiedId id && Equals(id);
210207 }
211208212209 public override int GetHashCode()