Skip to content

Commit 1a8f6d7

Browse files
committed
Chore: Nullable Reference Type checking and Implicit Usings cleanup
1 parent 3c5b893 commit 1a8f6d7

File tree

16 files changed

+26
-60
lines changed

16 files changed

+26
-60
lines changed

JavaToCSharp.Tests/JavaToCSharp.Tests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
<Nullable>enable</Nullable>
77
<LangVersion>latest</LangVersion>
88
<ImplicitUsings>enable</ImplicitUsings>
9+
<WarningsAsErrors>nullable</WarningsAsErrors>
910
</PropertyGroup>
1011

1112
<ItemGroup>

JavaToCSharp.Tests/VisitLiteralExpressionTests.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,15 @@ public class VisitLiteralExpressionTests
88
[Fact]
99
public void VisitLiteralExpression_Char()
1010
{
11-
Assert.Equal("\n", ExpressionVisitor.VisitExpression(null, new CharLiteralExpr("\\n")).GetFirstToken().ValueText);
11+
var expr = ExpressionVisitor.VisitExpression(new ConversionContext(new JavaConversionOptions()), new CharLiteralExpr("\\n"));
12+
Assert.Equal("\n", expr?.GetFirstToken().ValueText);
1213
}
1314

1415
[Fact]
1516
public void VisitLiteralExpression_String()
1617
{
17-
Assert.Equal("\\r", ExpressionVisitor.VisitExpression(null, new StringLiteralExpr("\\\\r")).GetFirstToken().ValueText);
18+
var expr = ExpressionVisitor.VisitExpression(new ConversionContext(new JavaConversionOptions()), new StringLiteralExpr(@"\\r"));
19+
Assert.Equal("\\r", expr?.GetFirstToken().ValueText);
1820
}
1921
}
2022

JavaToCSharp/JavaToCSharp.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
<Version>3.0.0</Version>
44
<TargetFramework>net6.0</TargetFramework>
55
<Nullable>enable</Nullable>
6+
<ImplicitUsings>enable</ImplicitUsings>
67
<Authors>Paul Irwin</Authors>
78
<Description>A Java to C# converter.</Description>
89
<Copyright>Copyright 2021-2023, Paul Irwin</Copyright>

JavaToCSharpCli/JavaToCSharpCli.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44
<OutputType>Exe</OutputType>
55
<TargetFramework>net6.0</TargetFramework>
66
<LangVersion>latest</LangVersion>
7+
<Nullable>enable</Nullable>
8+
<ImplicitUsings>enable</ImplicitUsings>
9+
<WarningsAsErrors>nullable</WarningsAsErrors>
710
</PropertyGroup>
811
<ItemGroup>
912
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="7.0.0" />

JavaToCSharpCli/Program.cs

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
using System;
2-
using System.IO;
3-
using System.Threading;
4-
using JavaToCSharp;
1+
using JavaToCSharp;
52
using Microsoft.Extensions.Logging;
63

74
namespace JavaToCSharpCli;
@@ -21,7 +18,7 @@ public static void Main(string[] args)
2118
{
2219
try
2320
{
24-
if (args == null || args.Length < 3)
21+
if (args.Length < 3)
2522
ShowHelp();
2623
else
2724
switch (args[0])
@@ -39,7 +36,7 @@ public static void Main(string[] args)
3936
}
4037
catch (Exception ex)
4138
{
42-
_logger.LogError(ex.Message, ex);
39+
_logger.LogError(ex, "Error: {Message}", ex.Message);
4340
}
4441

4542
// allow logger background thread to flush
@@ -53,13 +50,13 @@ private static void ConvertToCSharpDir(string folderPath, string outputFolderPat
5350
var input = new DirectoryInfo(folderPath);
5451
foreach (var f in input.GetFiles("*.java", SearchOption.AllDirectories))
5552
{
56-
string directoryName = f.DirectoryName;
57-
if (String.IsNullOrWhiteSpace(directoryName))
53+
string? directoryName = f.DirectoryName;
54+
if (string.IsNullOrWhiteSpace(directoryName))
5855
{
5956
continue;
6057
}
6158

62-
var newFolderPath = directoryName.Replace(folderPath, outputFolderPath, StringComparison.OrdinalIgnoreCase);
59+
string newFolderPath = directoryName.Replace(folderPath, outputFolderPath, StringComparison.OrdinalIgnoreCase);
6360
if (!Directory.Exists(newFolderPath))
6461
{
6562
Directory.CreateDirectory(newFolderPath);
@@ -82,17 +79,16 @@ private static void ConvertToCSharpFile(string filePath, string outputFilePath,
8279
{
8380
try
8481
{
85-
var javaText = File.ReadAllText(filePath);
82+
string javaText = File.ReadAllText(filePath);
8683
var options = new JavaConversionOptions();
8784

8885
options.WarningEncountered += (_, eventArgs) =>
8986
{
90-
var message = $"Line {eventArgs.JavaLineNumber}: {eventArgs.Message}";
91-
_logger.LogWarning(message);
92-
File.AppendAllText(Path.ChangeExtension(outputFilePath, ".warning"), message + Environment.NewLine);
87+
_logger.LogWarning("Line {JavaLineNumber}: {Message}", eventArgs.JavaLineNumber, eventArgs.Message);
88+
File.AppendAllText(Path.ChangeExtension(outputFilePath, ".warning"), eventArgs.Message + Environment.NewLine);
9389
};
9490

95-
var parsed = JavaToCSharpConverter.ConvertText(javaText, options);
91+
string? parsed = JavaToCSharpConverter.ConvertText(javaText, options);
9692
File.WriteAllText(outputFilePath, parsed);
9793
_logger.LogInformation("{filePath} converted!", filePath);
9894
}

JavaToCSharpGui/App.axaml.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
using Avalonia;
22
using Avalonia.Controls.ApplicationLifetimes;
3-
using Avalonia.Data.Core;
43
using Avalonia.Data.Core.Plugins;
54
using Avalonia.Markup.Xaml;
6-
using JavaToCSharpGui.ViewModels;
75
using JavaToCSharpGui.Views;
86

97
namespace JavaToCSharpGui;

JavaToCSharpGui/Infrastructure/HostStorageProvider.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
using System.Collections.Generic;
2-
using System.Threading.Tasks;
3-
4-
using Avalonia.Platform.Storage;
1+
using Avalonia.Platform.Storage;
52

63
namespace JavaToCSharpGui.Infrastructure;
74

JavaToCSharpGui/Infrastructure/IHostStorageProvider.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
using System.Collections.Generic;
2-
using System.Threading.Tasks;
3-
4-
using Avalonia.Platform.Storage;
1+
using Avalonia.Platform.Storage;
52

63
namespace JavaToCSharpGui.Infrastructure;
74

JavaToCSharpGui/Infrastructure/ITextClipboard.cs

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,4 @@
1-
using System;
2-
using System.Collections.Generic;
3-
using System.Linq;
4-
using System.Text;
5-
using System.Threading.Tasks;
6-
7-
namespace JavaToCSharpGui.Infrastructure;
1+
namespace JavaToCSharpGui.Infrastructure;
82

93
/// <summary>
104
/// Provides access to the host clipboard

JavaToCSharpGui/Infrastructure/IUIDispatcher.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
using System;
2-
using System.Threading.Tasks;
3-
4-
using Avalonia.Threading;
1+
using Avalonia.Threading;
52

63
namespace JavaToCSharpGui.Infrastructure;
74

0 commit comments

Comments
 (0)