Skip to content

Commit bee63bb

Browse files
Extract commonality
1 parent 8243ba0 commit bee63bb

3 files changed

Lines changed: 30 additions & 23 deletions

File tree

ICSharpCode.CodeConverter/CSharp/VBToCSConversion.cs

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -120,18 +120,8 @@ public SyntaxNode SingleSecondPass(KeyValuePair<string, SyntaxTree> cs)
120120

121121
public string GetWarningsOrNull()
122122
{
123-
var finalCompilation = CreateCompilation(_secondPassResults);
124-
var targetErrors = GetDiagnostics(finalCompilation);
125-
return targetErrors.Any() ? $"{targetErrors.Count} resulting compilation errors:{Environment.NewLine}{string.Join(Environment.NewLine, targetErrors)}" : null;
126-
}
127-
128-
private static List<string> GetDiagnostics(Compilation compilation)
129-
{
130-
var diagnostics = compilation.GetDiagnostics()
131-
.Where(d => d.Severity == DiagnosticSeverity.Error)
132-
.Select(d => $"{d.Id}: {d.GetMessage()}")
133-
.ToList();
134-
return diagnostics;
123+
var finalCompilation = CreateCompilation(_firstPassResults);
124+
return CompilationWarnings.WarningsForCompilation(_sourceCompilation, "source") + CompilationWarnings.WarningsForCompilation(finalCompilation, "target");
135125
}
136126

137127
public SyntaxTree CreateTree(string text)
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using Microsoft.CodeAnalysis;
5+
6+
namespace ICSharpCode.CodeConverter.Util
7+
{
8+
internal static class CompilationWarnings
9+
{
10+
public static string WarningsForCompilation(Compilation finalCompilation, string compilationDescription)
11+
{
12+
var targetErrors = GetDiagnostics(finalCompilation);
13+
return targetErrors.Any()
14+
? $"{targetErrors.Count} {compilationDescription} compilation errors:{Environment.NewLine}{String.Join(Environment.NewLine, targetErrors)}"
15+
: null;
16+
}
17+
18+
private static List<string> GetDiagnostics(Compilation compilation)
19+
{
20+
var diagnostics = compilation.GetDiagnostics()
21+
.Where(d => d.Severity == DiagnosticSeverity.Error)
22+
.Select(d => $"{d.Id}: {d.GetMessage()}")
23+
.ToList();
24+
return diagnostics;
25+
}
26+
}
27+
}

ICSharpCode.CodeConverter/VB/CSToVBConversion.cs

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -116,17 +116,7 @@ public SyntaxNode SingleSecondPass(KeyValuePair<string, SyntaxTree> cs)
116116
public string GetWarningsOrNull()
117117
{
118118
var finalCompilation = CreateCompilation(_firstPassResults);
119-
var targetErrors = GetDiagnostics(finalCompilation);
120-
return targetErrors.Any() ? $"{targetErrors.Count} resulting compilation errors:{Environment.NewLine}{string.Join(Environment.NewLine, targetErrors)}" : null;
121-
}
122-
123-
private static List<string> GetDiagnostics(Compilation compilation)
124-
{
125-
var diagnostics = compilation.GetDiagnostics()
126-
.Where(d => d.Severity == DiagnosticSeverity.Error)
127-
.Select(d => $"{d.Id}: {d.GetMessage()}")
128-
.ToList();
129-
return diagnostics;
119+
return CompilationWarnings.WarningsForCompilation(_sourceCompilation, "source") + CompilationWarnings.WarningsForCompilation(finalCompilation, "target");
130120
}
131121

132122
public SyntaxTree CreateTree(string text)

0 commit comments

Comments
 (0)