Skip to content

Commit bf26c7f

Browse files
authored
Fix nullability and code style warnings (#885)
1 parent c5485ee commit bf26c7f

File tree

11 files changed

+55
-32
lines changed

11 files changed

+55
-32
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
// Licensed under MIT No Attribution, see LICENSE file at the root.
2+
// Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet.
3+
4+
using System;
5+
using System.Runtime.Serialization;
6+
7+
namespace CodeGen.Exceptions
8+
{
9+
internal class UnitsNetCodeGenException : Exception
10+
{
11+
public UnitsNetCodeGenException()
12+
{
13+
}
14+
15+
protected UnitsNetCodeGenException(SerializationInfo info, StreamingContext context) : base(info, context)
16+
{
17+
}
18+
19+
public UnitsNetCodeGenException(string message) : base(message)
20+
{
21+
}
22+
23+
public UnitsNetCodeGenException(string message, Exception innerException) : base(message, innerException)
24+
{
25+
}
26+
}
27+
}

CodeGen/Generators/QuantityJsonFilesParser.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using System.IO;
77
using System.Linq;
88
using System.Text;
9+
using CodeGen.Exceptions;
910
using CodeGen.Helpers;
1011
using CodeGen.JsonTypes;
1112
using Newtonsoft.Json;
@@ -41,7 +42,9 @@ private static Quantity ParseQuantityFile(string jsonFile)
4142
{
4243
try
4344
{
44-
var quantity = JsonConvert.DeserializeObject<Quantity>(File.ReadAllText(jsonFile, Encoding.UTF8), JsonSerializerSettings);
45+
var quantity = JsonConvert.DeserializeObject<Quantity>(File.ReadAllText(jsonFile, Encoding.UTF8), JsonSerializerSettings)
46+
?? throw new UnitsNetCodeGenException($"Unable to parse quantity from JSON file: {jsonFile}");
47+
4548
AddPrefixUnits(quantity);
4649
FixConversionFunctionsForDecimalValueTypes(quantity);
4750
OrderUnitsByName(quantity);

CodeGen/Generators/UnitsNetGen/IQuantityTestClassGenerator.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
// Licensed under MIT No Attribution, see LICENSE file at the root.
22
// Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet.
33

4-
using System;
4+
using System.Diagnostics.CodeAnalysis;
55
using System.Linq;
66
using CodeGen.JsonTypes;
77

88
namespace CodeGen.Generators.UnitsNetGen
99
{
10+
// ReSharper disable once InconsistentNaming
11+
[SuppressMessage("ReSharper", "EnforceForeachStatementBraces")]
1012
internal class IQuantityTestClassGenerator : GeneratorBase
1113
{
1214
private readonly Quantity[] _quantities;

CodeGen/Generators/UnitsNetGen/NumberExtensionsTestClassGenerator.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@ internal class NumberExtensionsTestClassGenerator : GeneratorBase
1010

1111
public NumberExtensionsTestClassGenerator(Quantity quantity)
1212
{
13-
if (quantity is null)
14-
throw new ArgumentNullException(nameof(quantity));
13+
if (quantity is null) throw new ArgumentNullException(nameof(quantity));
1514

1615
_units = quantity.Units;
1716
_quantityName = quantity.Name;

CodeGen/Generators/UnitsNetGen/QuantityGenerator.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1148,16 +1148,16 @@ ulong IConvertible.ToUInt64(IFormatProvider provider)
11481148
}
11491149

11501150
/// <inheritdoc cref="GetObsoleteAttributeOrNull(string)"/>
1151-
internal static string GetObsoleteAttributeOrNull(Quantity quantity) => GetObsoleteAttributeOrNull(quantity.ObsoleteText);
1151+
internal static string? GetObsoleteAttributeOrNull(Quantity quantity) => GetObsoleteAttributeOrNull(quantity.ObsoleteText);
11521152

11531153
/// <inheritdoc cref="GetObsoleteAttributeOrNull(string)"/>
1154-
internal static string GetObsoleteAttributeOrNull(Unit unit) => GetObsoleteAttributeOrNull(unit.ObsoleteText);
1154+
internal static string? GetObsoleteAttributeOrNull(Unit unit) => GetObsoleteAttributeOrNull(unit.ObsoleteText);
11551155

11561156
/// <summary>
11571157
/// Returns the Obsolete attribute if ObsoleteText has been defined on the JSON input - otherwise returns empty string
11581158
/// It is up to the consumer to wrap any padding/new lines in order to keep to correct indentation formats
11591159
/// </summary>
1160-
private static string GetObsoleteAttributeOrNull(string obsoleteText) => string.IsNullOrWhiteSpace(obsoleteText)
1160+
private static string? GetObsoleteAttributeOrNull(string obsoleteText) => string.IsNullOrWhiteSpace(obsoleteText)
11611161
? null
11621162
: $"[System.Obsolete(\"{obsoleteText}\")]";
11631163
}

CodeGen/Helpers/MyTextWriter.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ public MyTextWriter(string indentString = " ", int initialIndentLevel = 0)
1616
{
1717
IndentString = indentString;
1818
IndentLevel = initialIndentLevel;
19+
_currentIndentationString = GetIndent(0);
1920
}
2021

2122
public string IndentString { get; }
@@ -89,9 +90,9 @@ public override string ToString()
8990
/// </summary>
9091
/// <param name="indentLevel">The level of indentation to prepend to the text.</param>
9192
/// <param name="text">The text to write.</param>
92-
public void WLIfText(int indentLevel, string text)
93+
public void WLIfText(int indentLevel, string? text)
9394
{
94-
if (string.IsNullOrWhiteSpace(text)) return;
95+
if (text == null || string.IsNullOrWhiteSpace(text)) return;
9596
WL(indentLevel, text);
9697
}
9798

@@ -102,8 +103,7 @@ public void WLIfText(int indentLevel, string text)
102103
/// <param name="text">The text to write.</param>
103104
public void WLCondition(bool condition, string text)
104105
{
105-
if (condition)
106-
WL(text);
106+
if (condition) WL(text);
107107
}
108108
}
109109
}

CodeGen/JsonTypes/Unit.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ internal class Unit
1010
// 0649 Field is never assigned to
1111
#pragma warning disable 0649
1212

13-
public BaseUnits BaseUnits;
13+
public BaseUnits? BaseUnits;
1414
public string FromBaseToUnitFunc;
1515
public string FromUnitToBaseFunc;
1616
public Localization[] Localization = Array.Empty<Localization>();

UnitsNet.sln.DotSettings

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
<s:String x:Key="/Default/CodeStyle/CSharpVarKeywordUsage/ForOtherTypes/@EntryValue">UseVarWhenEvident</s:String>
1515
<s:String x:Key="/Default/CodeStyle/CSharpVarKeywordUsage/ForSimpleTypes/@EntryValue">UseVarWhenEvident</s:String>
1616
<s:String x:Key="/Default/CodeStyle/FileHeader/FileHeaderText/@EntryValue">Licensed under MIT No Attribution, see LICENSE file at the root.&#xD;Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet.</s:String>
17+
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=SI/@EntryIndexedValue">SI</s:String>
18+
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=WL/@EntryIndexedValue">WL</s:String>
1719
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpAttributeForSingleLineMethodUpgrade/@EntryIndexedValue">True</s:Boolean>
1820
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpKeepExistingMigration/@EntryIndexedValue">True</s:Boolean>
1921
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpPlaceEmbeddedOnSameLineMigration/@EntryIndexedValue">True</s:Boolean>

UnitsNet/QuantityInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ public QuantityInfo(QuantityType quantityType, UnitInfo<TUnit>[] unitInfos, TUni
203203
/// <inheritdoc />
204204
public QuantityInfo(string name, UnitInfo<TUnit>[] unitInfos, TUnit baseUnit, IQuantity<TUnit> zero, BaseDimensions baseDimensions,
205205
QuantityType quantityType = QuantityType.Undefined)
206-
: base(name, unitInfos, baseUnit, zero, baseDimensions, quantityType)
206+
: base(name, unitInfos.ToArray<UnitInfo>(), baseUnit, zero, baseDimensions, quantityType)
207207
{
208208
Zero = zero;
209209
UnitInfos = unitInfos ?? throw new ArgumentNullException(nameof(unitInfos));

UnitsNet/UnitFormatter.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
using System;
55
using System.Collections.Generic;
66
using System.Linq;
7-
using JetBrains.Annotations;
87

98
namespace UnitsNet
109
{

0 commit comments

Comments
 (0)