Skip to content

Commit 564e0ee

Browse files
committed
♻️ codegen: Fix various warnings
1 parent f0a5492 commit 564e0ee

File tree

7 files changed

+96
-105
lines changed

7 files changed

+96
-105
lines changed

CodeGen/Generators/NanoFrameworkGen/QuantityGenerator.cs

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ namespace UnitsNet
3535
/// <remarks>
3636
/// {_quantity.XmlDocRemarks}
3737
/// </remarks>");
38+
Writer.WLIfText(1, GetObsoleteAttributeOrNull(_quantity));
3839

3940
Writer.WL($@"
4041
public struct {_quantity.Name}
@@ -123,10 +124,9 @@ private void GenerateConversionProperties()
123124
Writer.WL(@"
124125
#region Conversion Properties
125126
");
126-
foreach (var unit in _quantity.Units)
127+
foreach (Unit unit in _quantity.Units)
127128
{
128-
if (unit.SkipConversionGeneration)
129-
continue;
129+
if (unit.SkipConversionGeneration) continue;
130130

131131
Writer.WL($@"
132132
/// <summary>
@@ -149,10 +149,9 @@ private void GenerateStaticFactoryMethods()
149149
Writer.WL(@"
150150
#region Static Factory Methods
151151
");
152-
foreach (var unit in _quantity.Units)
152+
foreach (Unit unit in _quantity.Units)
153153
{
154-
if (unit.SkipConversionGeneration)
155-
continue;
154+
if (unit.SkipConversionGeneration) continue;
156155

157156
var valueParamName = unit.PluralName.ToLowerInvariant();
158157
Writer.WL($@"
@@ -212,7 +211,7 @@ private void GenerateConversionMethods()
212211
{{
213212
return Unit switch
214213
{{");
215-
foreach (var unit in _quantity.Units)
214+
foreach (Unit unit in _quantity.Units)
216215
{
217216
var func = unit.FromUnitToBaseFunc.Replace("{x}", "_value");
218217
Writer.WL($@"
@@ -233,7 +232,7 @@ private void GenerateConversionMethods()
233232
234233
return unit switch
235234
{{");
236-
foreach (var unit in _quantity.Units)
235+
foreach (Unit unit in _quantity.Units)
237236
{
238237
var func = unit.FromBaseToUnitFunc.Replace("{x}", "baseUnitValue");
239238
Writer.WL($@"
@@ -249,10 +248,10 @@ private void GenerateConversionMethods()
249248
}
250249

251250
/// <inheritdoc cref="GetObsoleteAttributeOrNull(string)"/>
252-
internal static string? GetObsoleteAttributeOrNull(Quantity quantity) => GetObsoleteAttributeOrNull(quantity.ObsoleteText);
251+
private static string? GetObsoleteAttributeOrNull(Quantity quantity) => GetObsoleteAttributeOrNull(quantity.ObsoleteText);
253252

254253
/// <inheritdoc cref="GetObsoleteAttributeOrNull(string)"/>
255-
internal static string? GetObsoleteAttributeOrNull(Unit unit) => GetObsoleteAttributeOrNull(unit.ObsoleteText);
254+
private static string? GetObsoleteAttributeOrNull(Unit unit) => GetObsoleteAttributeOrNull(unit.ObsoleteText);
256255

257256
/// <summary>
258257
/// Returns the Obsolete attribute if ObsoleteText has been defined on the JSON input - otherwise returns empty string

CodeGen/Generators/NanoFrameworkGenerator.cs

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ public static void Generate(string rootDir, Quantity[] quantities, QuantityNameT
6767
new Regex(@"<version>(?<version>[\d.]+)(?<suffix>-[a-z\d]+)?<\/version>", RegexOptions.IgnoreCase),
6868
"projectVersion");
6969

70-
foreach (var quantity in quantities)
70+
foreach (Quantity quantity in quantities)
7171
{
7272
var projectPath = Path.Combine(outputDir, quantity.Name);
7373
Directory.CreateDirectory(projectPath);
@@ -95,7 +95,6 @@ public static void Generate(string rootDir, Quantity[] quantities, QuantityNameT
9595
{
9696
var replacements = new Dictionary<string, string>
9797
{
98-
//{ "(\\)sdecimal(\\s)", "$1float$2" }
9998
{ "(\\d)m", "$1d" },
10099
{ "(\\d)M", "$1d" },
101100
{ " decimal ", " double " },
@@ -119,22 +118,22 @@ public static void Generate(string rootDir, Quantity[] quantities, QuantityNameT
119118
}
120119

121120
/// <summary>
122-
/// Updates existing nanoFramework projects and nuspecs with the latest versions.
121+
/// Updates existing nanoFramework projects and nuspec files with the latest versions.
123122
/// </summary>
124123
/// <param name="rootDir">The root directory</param>
125-
/// <param name="quantities">The quantities to update nuspecs</param>
124+
/// <param name="quantities">The quantities to update nuspec files</param>
126125
public static bool UpdateNanoFrameworkDependencies(
127126
string rootDir,
128127
Quantity[] quantities)
129128
{
130129
// working path
131-
string path = Path.Combine(rootDir, "UnitsNet.NanoFramework\\GeneratedCode");
130+
var path = Path.Combine(rootDir, "UnitsNet.NanoFramework\\GeneratedCode");
132131

133132
Log.Information("");
134133
Log.Information("Restoring .NET nanoFramework projects");
135134

136135
// run nuget CLI
137-
var nugetCLI = new Process
136+
using var nugetRestore = new Process
138137
{
139138
StartInfo = new ProcessStartInfo
140139
{
@@ -147,7 +146,7 @@ public static bool UpdateNanoFrameworkDependencies(
147146
};
148147

149148
// start nuget CLI and wait for exit
150-
if (!nugetCLI.Start())
149+
if (!nugetRestore.Start())
151150
{
152151
Log.Information("");
153152
Log.Information("Failed to start nuget CLI to restore .NET nanoFramework projects");
@@ -156,25 +155,25 @@ public static bool UpdateNanoFrameworkDependencies(
156155
else
157156
{
158157
// wait for exit, within 2 minutes
159-
if (!nugetCLI.WaitForExit((int)TimeSpan.FromMinutes(2).TotalMilliseconds))
158+
if (!nugetRestore.WaitForExit((int)TimeSpan.FromMinutes(2).TotalMilliseconds))
160159
{
161160
Log.Information("");
162161
Log.Information("Failed to complete execution of nuget CLI to restore .NET nanoFramework projects");
163162
Log.Information("");
164163
}
165164
else
166165
{
167-
if (nugetCLI.ExitCode == 0)
166+
if (nugetRestore.ExitCode == 0)
168167
{
169168
Log.Information("Done!");
170169
Log.Information("");
171170
}
172171
else
173172
{
174173
Log.Information("");
175-
Log.Information($"nuget CLI executed with {nugetCLI.ExitCode} exit code");
174+
Log.Information("nuget CLI executed with {ExitCode} exit code", nugetRestore.ExitCode);
176175

177-
Log.Information(nugetCLI.StandardError.ReadToEnd());
176+
Log.Information("{StandardError}", nugetRestore.StandardError.ReadToEnd());
178177

179178
return false;
180179
}
@@ -185,7 +184,7 @@ public static bool UpdateNanoFrameworkDependencies(
185184
Log.Information("Updating .NET nanoFramework references using nuget CLI");
186185

187186
// run nuget CLI to perform update
188-
nugetCLI = new Process
187+
using var nugetUpdate = new Process
189188
{
190189
StartInfo = new ProcessStartInfo
191190
{
@@ -198,7 +197,7 @@ public static bool UpdateNanoFrameworkDependencies(
198197
};
199198

200199
// start nuget CLI and wait for exit
201-
if (!nugetCLI.Start())
200+
if (!nugetUpdate.Start())
202201
{
203202
Log.Information("");
204203
Log.Information("Failed to start nuget CLI to update .NET nanoFramework projects");
@@ -207,23 +206,23 @@ public static bool UpdateNanoFrameworkDependencies(
207206
else
208207
{
209208
// wait for exit, within 2 minutes
210-
if (!nugetCLI.WaitForExit((int)TimeSpan.FromMinutes(2).TotalMilliseconds))
209+
if (!nugetUpdate.WaitForExit((int)TimeSpan.FromMinutes(2).TotalMilliseconds))
211210
{
212211
Log.Information("");
213212
Log.Information("Failed to complete execution of nuget CLI to update .NET nanoFramework projects");
214213
Log.Information("");
215214
}
216215
else
217216
{
218-
if (nugetCLI.ExitCode == 0)
217+
if (nugetUpdate.ExitCode == 0)
219218
{
220219
Log.Information("Done!");
221220
Log.Information("");
222221

223222
Log.Information("Updating .NET nanoFramework nuspec files");
224223
Log.Information("");
225224

226-
foreach (var quantity in quantities)
225+
foreach (Quantity quantity in quantities)
227226
{
228227
var projectPath = Path.Combine(path, quantity.Name);
229228

@@ -254,9 +253,9 @@ public static bool UpdateNanoFrameworkDependencies(
254253
else
255254
{
256255
Log.Information("");
257-
Log.Information($"nuget CLI executed with {nugetCLI.ExitCode} exit code");
256+
Log.Information("nuget CLI executed with {ExitCode} exit code", nugetUpdate.ExitCode);
258257

259-
Log.Information(nugetCLI.StandardError.ReadToEnd());
258+
Log.Information("{StandardError}", nugetUpdate.StandardError.ReadToEnd());
260259

261260
return false;
262261
}
@@ -272,7 +271,7 @@ public static bool UpdateNanoFrameworkDependencies(
272271
private static NanoFrameworkVersions ParseCurrentNanoFrameworkVersions(string rootDir)
273272
{
274273
// Angle has both mscorlib and System.Math dependency
275-
string generatedCodePath = Path.Combine(rootDir, "UnitsNet.NanoFramework", "GeneratedCode");
274+
var generatedCodePath = Path.Combine(rootDir, "UnitsNet.NanoFramework", "GeneratedCode");
276275
var angleProjectFile = Path.Combine(generatedCodePath, "Angle", "Angle.nfproj");
277276
var projectFileContent = File.ReadAllText(angleProjectFile);
278277

@@ -305,7 +304,7 @@ private static string ParseVersion(
305304
string descriptiveName,
306305
bool throwOnFailure = true)
307306
{
308-
var match = versionRegex.Match(projectFileContent);
307+
Match match = versionRegex.Match(projectFileContent);
309308

310309
if (!match.Success && throwOnFailure)
311310
{
@@ -321,8 +320,7 @@ private static void GeneratePackageConfig(
321320
string mscorlibNuGetVersion,
322321
string mathNuGetVersion)
323322
{
324-
string filePath = Path.Combine(projectPath, "packages.config");
325-
323+
var filePath = Path.Combine(projectPath, "packages.config");
326324
var content = GeneratePackageConfigFile(quantityName, mscorlibNuGetVersion, mathNuGetVersion);
327325

328326
File.WriteAllText(filePath, content);
@@ -334,7 +332,7 @@ private static void GenerateNuspec(
334332
string mscorlibNuGetVersion,
335333
string mathNuGetVersion)
336334
{
337-
string filePath = Path.Combine(projectPath, $"UnitsNet.NanoFramework.{quantity.Name}.nuspec");
335+
var filePath = Path.Combine(projectPath, $"UnitsNet.NanoFramework.{quantity.Name}.nuspec");
338336

339337
var content = new NuspecGenerator(
340338
quantity,

CodeGen/Generators/UnitsNetGen/QuantityGenerator.cs

Lines changed: 20 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -29,15 +29,7 @@ public QuantityGenerator(Quantity quantity)
2929
_unitEnumName = $"{quantity.Name}Unit";
3030

3131
BaseDimensions baseDimensions = quantity.BaseDimensions;
32-
_isDimensionless = baseDimensions == null ||
33-
baseDimensions.L == 0 &&
34-
baseDimensions.M == 0 &&
35-
baseDimensions.T == 0 &&
36-
baseDimensions.I == 0 &&
37-
baseDimensions.Θ == 0 &&
38-
baseDimensions.N == 0 &&
39-
baseDimensions.J == 0;
40-
32+
_isDimensionless = baseDimensions is { L: 0, M: 0, T: 0, I: 0, Θ: 0, N: 0, J: 0 };
4133
}
4234

4335
public string Generate()
@@ -114,7 +106,7 @@ namespace UnitsNet
114106

115107
private void GenerateStaticConstructor()
116108
{
117-
var baseDimensions = _quantity.BaseDimensions;
109+
BaseDimensions baseDimensions = _quantity.BaseDimensions;
118110
Writer.WL($@"
119111
static {_quantity.Name}()
120112
{{");
@@ -130,9 +122,9 @@ private void GenerateStaticConstructor()
130122
new UnitInfo<{_unitEnumName}>[]
131123
{{");
132124

133-
foreach (var unit in _quantity.Units)
125+
foreach (Unit unit in _quantity.Units)
134126
{
135-
var baseUnits = unit.BaseUnits;
127+
BaseUnits? baseUnits = unit.BaseUnits;
136128
if (baseUnits == null)
137129
{
138130
Writer.WL($@"
@@ -299,10 +291,9 @@ private void GenerateConversionProperties()
299291
Writer.WL(@"
300292
#region Conversion Properties
301293
");
302-
foreach (var unit in _quantity.Units)
294+
foreach (Unit unit in _quantity.Units)
303295
{
304-
if (unit.SkipConversionGeneration)
305-
continue;
296+
if (unit.SkipConversionGeneration) continue;
306297

307298
Writer.WL($@"
308299
/// <summary>
@@ -334,12 +325,10 @@ internal static void RegisterDefaultConversions(UnitConverter unitConverter)
334325
{{
335326
// Register in unit converter: {_quantity.Name}Unit -> BaseUnit");
336327

337-
foreach(var unit in _quantity.Units)
328+
foreach (Unit unit in _quantity.Units)
338329
{
339-
if (unit.SingularName == _quantity.BaseUnit)
340-
continue;
330+
if (unit.SingularName == _quantity.BaseUnit) continue;
341331

342-
var func = unit.FromUnitToBaseFunc.Replace("{x}", "quantity.Value");
343332
Writer.WL($@"
344333
unitConverter.SetConversionFunction<{_quantity.Name}>({_quantity.Name}Unit.{unit.SingularName}, {_unitEnumName}.{_quantity.BaseUnit}, quantity => quantity.ToUnit({_unitEnumName}.{_quantity.BaseUnit}));");
345334
}
@@ -352,12 +341,10 @@ internal static void RegisterDefaultConversions(UnitConverter unitConverter)
352341
353342
// Register in unit converter: BaseUnit -> {_quantity.Name}Unit");
354343

355-
foreach(var unit in _quantity.Units)
344+
foreach (Unit unit in _quantity.Units)
356345
{
357-
if (unit.SingularName == _quantity.BaseUnit)
358-
continue;
346+
if (unit.SingularName == _quantity.BaseUnit) continue;
359347

360-
var func = unit.FromBaseToUnitFunc.Replace("{x}", "quantity.Value");
361348
Writer.WL($@"
362349
unitConverter.SetConversionFunction<{_quantity.Name}>({_unitEnumName}.{_quantity.BaseUnit}, {_quantity.Name}Unit.{unit.SingularName}, quantity => quantity.ToUnit({_quantity.Name}Unit.{unit.SingularName}));");
363350
}
@@ -367,9 +354,9 @@ internal static void RegisterDefaultConversions(UnitConverter unitConverter)
367354
368355
internal static void MapGeneratedLocalizations(UnitAbbreviationsCache unitAbbreviationsCache)
369356
{{");
370-
foreach(var unit in _quantity.Units)
357+
foreach(Unit unit in _quantity.Units)
371358
{
372-
foreach(var localization in unit.Localization)
359+
foreach(Localization localization in unit.Localization)
373360
{
374361
// All units must have a unit abbreviation, so fallback to "" for units with no abbreviations defined in JSON
375362
var abbreviationParams = localization.Abbreviations.Any() ?
@@ -414,10 +401,9 @@ private void GenerateStaticFactoryMethods()
414401
Writer.WL(@"
415402
#region Static Factory Methods
416403
");
417-
foreach (var unit in _quantity.Units)
404+
foreach (Unit unit in _quantity.Units)
418405
{
419-
if (unit.SkipConversionGeneration)
420-
continue;
406+
if (unit.SkipConversionGeneration) continue;
421407

422408
var valueParamName = unit.PluralName.ToLowerInvariant();
423409
Writer.WL($@"
@@ -602,8 +588,7 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out {_uni
602588

603589
private void GenerateArithmeticOperators()
604590
{
605-
if (!_quantity.GenerateArithmetic)
606-
return;
591+
if (!_quantity.GenerateArithmetic) return;
607592

608593
// Logarithmic units required different arithmetic
609594
if (_quantity.Logarithmic)
@@ -1022,10 +1007,9 @@ private bool TryToUnit({_quantity.Name}Unit unit, out {_quantity.Name}? converte
10221007
{{
10231008
// {_quantity.Name}Unit -> BaseUnit");
10241009

1025-
foreach(var unit in _quantity.Units)
1010+
foreach (Unit unit in _quantity.Units)
10261011
{
1027-
if (unit.SingularName == _quantity.BaseUnit)
1028-
continue;
1012+
if (unit.SingularName == _quantity.BaseUnit) continue;
10291013

10301014
var func = unit.FromUnitToBaseFunc.Replace("{x}", "_value");
10311015
Writer.WL($@"
@@ -1036,10 +1020,9 @@ private bool TryToUnit({_quantity.Name}Unit unit, out {_quantity.Name}? converte
10361020
Writer.WL($@"
10371021
10381022
// BaseUnit -> {_quantity.Name}Unit");
1039-
foreach(var unit in _quantity.Units)
1023+
foreach(Unit unit in _quantity.Units)
10401024
{
1041-
if (unit.SingularName == _quantity.BaseUnit)
1042-
continue;
1025+
if (unit.SingularName == _quantity.BaseUnit) continue;
10431026

10441027
var func = unit.FromBaseToUnitFunc.Replace("{x}", "_value");
10451028
Writer.WL($@"
@@ -1248,7 +1231,7 @@ ulong IConvertible.ToUInt64(IFormatProvider provider)
12481231
private static string? GetObsoleteAttributeOrNull(Quantity quantity) => GetObsoleteAttributeOrNull(quantity.ObsoleteText);
12491232

12501233
/// <inheritdoc cref="GetObsoleteAttributeOrNull(string)"/>
1251-
internal static string? GetObsoleteAttributeOrNull(Unit unit) => GetObsoleteAttributeOrNull(unit.ObsoleteText);
1234+
private static string? GetObsoleteAttributeOrNull(Unit unit) => GetObsoleteAttributeOrNull(unit.ObsoleteText);
12521235

12531236
/// <summary>
12541237
/// Returns the Obsolete attribute if ObsoleteText has been defined on the JSON input - otherwise returns empty string

0 commit comments

Comments
 (0)