Browse Source

Add Roslyn 3.11.0 as separate test configuration. Update RoslynLatest to 4.0.0. Use LanguageVersion.CSharp9_0 instead of Preview. Add LanguageVersion.CSharp10_0.

pull/2542/head
Siegfried Pammer 4 years ago
parent
commit
30f9a82fbe
  1. 8
      ICSharpCode.Decompiler.Tests/CorrectnessTestRunner.cs
  2. 1
      ICSharpCode.Decompiler.Tests/Helpers/Tester.VB.cs
  3. 25
      ICSharpCode.Decompiler.Tests/Helpers/Tester.cs
  4. 10
      ICSharpCode.Decompiler.Tests/PrettyTestRunner.cs
  5. 6
      ICSharpCode.Decompiler.Tests/RoundtripAssembly.cs
  6. 2
      ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.cs
  7. 24
      ICSharpCode.Decompiler/CSharp/CSharpLanguageVersion.cs
  8. 4
      ICSharpCode.Decompiler/DecompilerSettings.cs
  9. 3
      ILSpy/Languages/CSharpLanguage.cs
  10. 2
      packages.props

8
ICSharpCode.Decompiler.Tests/CorrectnessTestRunner.cs

@ -57,6 +57,8 @@ namespace ICSharpCode.Decompiler.Tests @@ -57,6 +57,8 @@ namespace ICSharpCode.Decompiler.Tests
CompilerOptions.Optimize | CompilerOptions.UseRoslyn1_3_2,
CompilerOptions.UseRoslyn2_10_0,
CompilerOptions.Optimize | CompilerOptions.UseRoslyn2_10_0,
CompilerOptions.UseRoslyn3_11_0,
CompilerOptions.Optimize | CompilerOptions.UseRoslyn3_11_0,
CompilerOptions.UseRoslynLatest,
CompilerOptions.Optimize | CompilerOptions.UseRoslynLatest,
};
@ -69,6 +71,8 @@ namespace ICSharpCode.Decompiler.Tests @@ -69,6 +71,8 @@ namespace ICSharpCode.Decompiler.Tests
CompilerOptions.Optimize | CompilerOptions.UseRoslyn1_3_2,
CompilerOptions.UseRoslyn2_10_0,
CompilerOptions.Optimize | CompilerOptions.UseRoslyn2_10_0,
CompilerOptions.UseRoslyn3_11_0,
CompilerOptions.Optimize | CompilerOptions.UseRoslyn3_11_0,
CompilerOptions.UseRoslynLatest,
CompilerOptions.Optimize | CompilerOptions.UseRoslynLatest,
CompilerOptions.UseMcs,
@ -81,6 +85,8 @@ namespace ICSharpCode.Decompiler.Tests @@ -81,6 +85,8 @@ namespace ICSharpCode.Decompiler.Tests
CompilerOptions.Optimize | CompilerOptions.UseRoslyn1_3_2,
CompilerOptions.UseRoslyn2_10_0,
CompilerOptions.Optimize | CompilerOptions.UseRoslyn2_10_0,
CompilerOptions.UseRoslyn3_11_0,
CompilerOptions.Optimize | CompilerOptions.UseRoslyn3_11_0,
CompilerOptions.UseRoslynLatest,
CompilerOptions.Optimize | CompilerOptions.UseRoslynLatest,
};
@ -89,6 +95,8 @@ namespace ICSharpCode.Decompiler.Tests @@ -89,6 +95,8 @@ namespace ICSharpCode.Decompiler.Tests
{
CompilerOptions.UseRoslyn2_10_0,
CompilerOptions.Optimize | CompilerOptions.UseRoslyn2_10_0,
CompilerOptions.UseRoslyn3_11_0,
CompilerOptions.Optimize | CompilerOptions.UseRoslyn3_11_0,
CompilerOptions.UseRoslynLatest,
CompilerOptions.Optimize | CompilerOptions.UseRoslynLatest,
};

1
ICSharpCode.Decompiler.Tests/Helpers/Tester.VB.cs

@ -49,6 +49,7 @@ namespace ICSharpCode.Decompiler.Tests.Helpers @@ -49,6 +49,7 @@ namespace ICSharpCode.Decompiler.Tests.Helpers
0 => ("legacy", "11"),
CompilerOptions.UseRoslyn1_3_2 => ("1.3.2", "14"),
CompilerOptions.UseRoslyn2_10_0 => ("2.10.0", "latest"),
CompilerOptions.UseRoslyn3_11_0 => ("3.11.0", "latest"),
_ => (RoslynLatestVersion, flags.HasFlag(CompilerOptions.Preview) ? "preview" : "latest")
};

25
ICSharpCode.Decompiler.Tests/Helpers/Tester.cs

@ -61,8 +61,9 @@ namespace ICSharpCode.Decompiler.Tests.Helpers @@ -61,8 +61,9 @@ namespace ICSharpCode.Decompiler.Tests.Helpers
GeneratePdb = 0x100,
Preview = 0x200,
UseRoslyn2_10_0 = 0x400,
UseRoslynLatest = 0x800,
UseRoslynMask = UseRoslyn1_3_2 | UseRoslyn2_10_0 | UseRoslynLatest
UseRoslyn3_11_0 = 0x800,
UseRoslynLatest = 0x1000,
UseRoslynMask = UseRoslyn1_3_2 | UseRoslyn2_10_0 | UseRoslyn3_11_0 | UseRoslynLatest
}
[Flags]
@ -306,23 +307,31 @@ namespace ICSharpCode.Decompiler.Tests.Helpers @@ -306,23 +307,31 @@ namespace ICSharpCode.Decompiler.Tests.Helpers
preprocessorSymbols.Add("VB11");
preprocessorSymbols.Add("VB14");
if (flags.HasFlag(CompilerOptions.UseRoslyn2_10_0)
|| flags.HasFlag(CompilerOptions.UseRoslyn3_11_0)
|| flags.HasFlag(CompilerOptions.UseRoslynLatest))
{
preprocessorSymbols.Add("ROSLYN2");
preprocessorSymbols.Add("CS70");
preprocessorSymbols.Add("CS71");
preprocessorSymbols.Add("CS72");
preprocessorSymbols.Add("CS73");
preprocessorSymbols.Add("VB15");
}
if (flags.HasFlag(CompilerOptions.UseRoslynLatest))
if (flags.HasFlag(CompilerOptions.UseRoslyn3_11_0)
|| flags.HasFlag(CompilerOptions.UseRoslynLatest))
{
preprocessorSymbols.Add("ROSLYN3");
preprocessorSymbols.Add("CS73");
preprocessorSymbols.Add("CS80");
preprocessorSymbols.Add("CS90");
preprocessorSymbols.Add("VB16");
}
if (flags.HasFlag(CompilerOptions.UseRoslynLatest))
{
preprocessorSymbols.Add("ROSLYN4");
preprocessorSymbols.Add("CS100");
if (flags.HasFlag(CompilerOptions.Preview))
{
preprocessorSymbols.Add("CS90");
}
}
}
@ -361,6 +370,7 @@ namespace ICSharpCode.Decompiler.Tests.Helpers @@ -361,6 +370,7 @@ namespace ICSharpCode.Decompiler.Tests.Helpers
0 => ("legacy", "5"),
CompilerOptions.UseRoslyn1_3_2 => ("1.3.2", "6"),
CompilerOptions.UseRoslyn2_10_0 => ("2.10.0", "latest"),
CompilerOptions.UseRoslyn3_11_0 => ("3.11.0", "latest"),
_ => (RoslynLatestVersion, flags.HasFlag(CompilerOptions.Preview) ? "preview" : "latest")
};
@ -526,7 +536,8 @@ namespace ICSharpCode.Decompiler.Tests.Helpers @@ -526,7 +536,8 @@ namespace ICSharpCode.Decompiler.Tests.Helpers
var langVersion = (cscOptions & CompilerOptions.UseRoslynMask) switch {
CompilerOptions.UseRoslyn1_3_2 => CSharp.LanguageVersion.CSharp6,
CompilerOptions.UseRoslyn2_10_0 => CSharp.LanguageVersion.CSharp7_3,
_ => cscOptions.HasFlag(CompilerOptions.Preview) ? CSharp.LanguageVersion.Latest : CSharp.LanguageVersion.CSharp8_0,
CompilerOptions.UseRoslyn3_11_0 => CSharp.LanguageVersion.CSharp9_0,
_ => cscOptions.HasFlag(CompilerOptions.Preview) ? CSharp.LanguageVersion.Latest : CSharp.LanguageVersion.CSharp9_0,
};
return new DecompilerSettings(langVersion);
}
@ -594,6 +605,8 @@ namespace ICSharpCode.Decompiler.Tests.Helpers @@ -594,6 +605,8 @@ namespace ICSharpCode.Decompiler.Tests.Helpers
suffix += ".roslyn1";
if ((cscOptions & CompilerOptions.UseRoslyn2_10_0) != 0)
suffix += ".roslyn2";
if ((cscOptions & CompilerOptions.UseRoslyn3_11_0) != 0)
suffix += ".roslyn3";
if ((cscOptions & CompilerOptions.UseRoslynLatest) != 0)
suffix += ".roslyn";
if ((cscOptions & CompilerOptions.UseMcs) != 0)

10
ICSharpCode.Decompiler.Tests/PrettyTestRunner.cs

@ -63,6 +63,8 @@ namespace ICSharpCode.Decompiler.Tests @@ -63,6 +63,8 @@ namespace ICSharpCode.Decompiler.Tests
CompilerOptions.Optimize | CompilerOptions.UseRoslyn1_3_2,
CompilerOptions.UseRoslyn2_10_0,
CompilerOptions.Optimize | CompilerOptions.UseRoslyn2_10_0,
CompilerOptions.UseRoslyn3_11_0,
CompilerOptions.Optimize | CompilerOptions.UseRoslyn3_11_0,
CompilerOptions.UseRoslynLatest,
CompilerOptions.Optimize | CompilerOptions.UseRoslynLatest,
};
@ -71,6 +73,8 @@ namespace ICSharpCode.Decompiler.Tests @@ -71,6 +73,8 @@ namespace ICSharpCode.Decompiler.Tests
{
CompilerOptions.UseRoslyn2_10_0,
CompilerOptions.Optimize | CompilerOptions.UseRoslyn2_10_0,
CompilerOptions.UseRoslyn3_11_0,
CompilerOptions.Optimize | CompilerOptions.UseRoslyn3_11_0,
CompilerOptions.UseRoslynLatest,
CompilerOptions.Optimize | CompilerOptions.UseRoslynLatest,
};
@ -83,6 +87,8 @@ namespace ICSharpCode.Decompiler.Tests @@ -83,6 +87,8 @@ namespace ICSharpCode.Decompiler.Tests
static readonly CompilerOptions[] dotnetCoreOnlyOptions =
{
CompilerOptions.UseRoslyn3_11_0 | CompilerOptions.ReferenceCore,
CompilerOptions.Optimize | CompilerOptions.UseRoslyn3_11_0 | CompilerOptions.ReferenceCore,
CompilerOptions.UseRoslynLatest | CompilerOptions.ReferenceCore,
CompilerOptions.Optimize | CompilerOptions.UseRoslynLatest | CompilerOptions.ReferenceCore,
};
@ -95,6 +101,8 @@ namespace ICSharpCode.Decompiler.Tests @@ -95,6 +101,8 @@ namespace ICSharpCode.Decompiler.Tests
CompilerOptions.Optimize | CompilerOptions.UseRoslyn1_3_2,
CompilerOptions.UseRoslyn2_10_0,
CompilerOptions.Optimize | CompilerOptions.UseRoslyn2_10_0,
CompilerOptions.UseRoslyn3_11_0,
CompilerOptions.Optimize | CompilerOptions.UseRoslyn3_11_0,
CompilerOptions.UseRoslynLatest,
CompilerOptions.Optimize | CompilerOptions.UseRoslynLatest,
};
@ -107,6 +115,8 @@ namespace ICSharpCode.Decompiler.Tests @@ -107,6 +115,8 @@ namespace ICSharpCode.Decompiler.Tests
CompilerOptions.Optimize | CompilerOptions.UseRoslyn1_3_2,
CompilerOptions.UseRoslyn2_10_0,
CompilerOptions.Optimize | CompilerOptions.UseRoslyn2_10_0,
CompilerOptions.UseRoslyn3_11_0,
CompilerOptions.Optimize | CompilerOptions.UseRoslyn3_11_0,
CompilerOptions.UseRoslynLatest,
CompilerOptions.Optimize | CompilerOptions.UseRoslynLatest,
CompilerOptions.UseMcs,

6
ICSharpCode.Decompiler.Tests/RoundtripAssembly.cs

@ -106,14 +106,14 @@ namespace ICSharpCode.Decompiler.Tests @@ -106,14 +106,14 @@ namespace ICSharpCode.Decompiler.Tests
[Ignore("Waiting for https://github.com/dotnet/roslyn/issues/45929")]
public void ExplicitConversions_With_NativeInts()
{
RunWithOutput("Random Tests\\TestCases", "ExplicitConversions.exe", LanguageVersion.Preview);
RunWithOutput("Random Tests\\TestCases", "ExplicitConversions.exe", LanguageVersion.CSharp9_0);
}
[Test]
[Ignore("Waiting for https://github.com/dotnet/roslyn/issues/45929")]
public void ExplicitConversions_32_With_NativeInts()
{
RunWithOutput("Random Tests\\TestCases", "ExplicitConversions_32.exe", LanguageVersion.Preview);
RunWithOutput("Random Tests\\TestCases", "ExplicitConversions_32.exe", LanguageVersion.CSharp9_0);
}
[Test]
@ -126,7 +126,7 @@ namespace ICSharpCode.Decompiler.Tests @@ -126,7 +126,7 @@ namespace ICSharpCode.Decompiler.Tests
[Ignore("Waiting for https://github.com/dotnet/roslyn/issues/45929")]
public void Random_TestCase_1_With_NativeInts()
{
RunWithOutput("Random Tests\\TestCases", "TestCase-1.exe", LanguageVersion.Preview);
RunWithOutput("Random Tests\\TestCases", "TestCase-1.exe", LanguageVersion.CSharp9_0);
}
// Let's limit the roundtrip tests to C# 8.0 for now; because 9.0 is still in preview

2
ICSharpCode.Decompiler.Tests/TestCases/Pretty/InitializerTests.cs

@ -1053,7 +1053,7 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests @@ -1053,7 +1053,7 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty.InitializerTests
A = 43
}
}
}
};
}
#endif

24
ICSharpCode.Decompiler/CSharp/CSharpLanguageVersion.cs

@ -1,6 +1,20 @@ @@ -1,6 +1,20 @@
using System;
using System.Collections.Generic;
using System.Text;
// Copyright (c) 2018 Daniel Grunwald
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this
// software and associated documentation files (the "Software"), to deal in the Software
// without restriction, including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
// to whom the Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all copies or
// substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
namespace ICSharpCode.Decompiler.CSharp
{
@ -17,7 +31,9 @@ namespace ICSharpCode.Decompiler.CSharp @@ -17,7 +31,9 @@ namespace ICSharpCode.Decompiler.CSharp
CSharp7_2 = 702,
CSharp7_3 = 703,
CSharp8_0 = 800,
Preview = 900,
CSharp9_0 = 900,
CSharp10_0 = 1000,
Preview = 1000,
Latest = 0x7FFFFFFF
}
}

4
ICSharpCode.Decompiler/DecompilerSettings.cs

@ -131,7 +131,7 @@ namespace ICSharpCode.Decompiler @@ -131,7 +131,7 @@ namespace ICSharpCode.Decompiler
ranges = false;
switchExpressions = false;
}
if (languageVersion < CSharp.LanguageVersion.Preview)
if (languageVersion < CSharp.LanguageVersion.CSharp9_0)
{
nativeIntegers = false;
initAccessors = false;
@ -148,7 +148,7 @@ namespace ICSharpCode.Decompiler @@ -148,7 +148,7 @@ namespace ICSharpCode.Decompiler
{
if (nativeIntegers || initAccessors || functionPointers || forEachWithGetEnumeratorExtension
|| recordClasses || withExpressions || usePrimaryConstructorSyntax || covariantReturns)
return CSharp.LanguageVersion.Preview;
return CSharp.LanguageVersion.CSharp9_0;
if (nullableReferenceTypes || readOnlyMethods || asyncEnumerator || asyncUsingAndForEachStatement
|| staticLocalFunctions || ranges || switchExpressions)
return CSharp.LanguageVersion.CSharp8_0;

3
ILSpy/Languages/CSharpLanguage.cs

@ -111,7 +111,8 @@ namespace ICSharpCode.ILSpy @@ -111,7 +111,8 @@ namespace ICSharpCode.ILSpy
new LanguageVersion(Decompiler.CSharp.LanguageVersion.CSharp7_2.ToString(), "C# 7.2 / VS 2017.4"),
new LanguageVersion(Decompiler.CSharp.LanguageVersion.CSharp7_3.ToString(), "C# 7.3 / VS 2017.7"),
new LanguageVersion(Decompiler.CSharp.LanguageVersion.CSharp8_0.ToString(), "C# 8.0 / VS 2019"),
new LanguageVersion(Decompiler.CSharp.LanguageVersion.Preview.ToString(), "C# 9.0 / VS 2019.8"),
new LanguageVersion(Decompiler.CSharp.LanguageVersion.CSharp9_0.ToString(), "C# 9.0 / VS 2019.8"),
new LanguageVersion(Decompiler.CSharp.LanguageVersion.CSharp10_0.ToString(), "C# 10.0 / VS 2022"),
};
}
return versions;

2
packages.props

@ -10,7 +10,7 @@ @@ -10,7 +10,7 @@
<SystemCompilerServicesUnsafeVersion>5.0.0</SystemCompilerServicesUnsafeVersion>
<SystemCompositionVersion>5.0.1</SystemCompositionVersion>
<ILAsmVersion>5.0.0</ILAsmVersion> <!-- Microsoft.NETCore.ILAsm -->
<RoslynVersion>3.11.0-1.final</RoslynVersion> <!-- Microsoft.CodeAnalysis.* -->
<RoslynVersion>4.0.0-6.final</RoslynVersion> <!-- Microsoft.CodeAnalysis.* -->
<MonoCecilVersion>0.11.4</MonoCecilVersion>
<AvalonEditVersion>6.1.1</AvalonEditVersion>
<WpfStylesToolboxVersion>2.6.1</WpfStylesToolboxVersion>

Loading…
Cancel
Save