Browse Source

Add tests for C# 9.0 lambda parameter discards

pull/2113/head
Siegfried Pammer 5 years ago
parent
commit
2403548ce3
  1. 7
      ICSharpCode.Decompiler.Tests/Helpers/Tester.cs
  2. 2
      ICSharpCode.Decompiler.Tests/PrettyTestRunner.cs
  3. 12
      ICSharpCode.Decompiler.Tests/TestCases/Pretty/DelegateConstruction.cs

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

@ -251,15 +251,16 @@ namespace ICSharpCode.Decompiler.Tests.Helpers
preprocessorSymbols.Add("VB11"); preprocessorSymbols.Add("VB11");
preprocessorSymbols.Add("VB14"); preprocessorSymbols.Add("VB14");
preprocessorSymbols.Add("VB15"); preprocessorSymbols.Add("VB15");
if (flags.HasFlag(CompilerOptions.Preview)) {
preprocessorSymbols.Add("CS90");
}
} else if (flags.HasFlag(CompilerOptions.UseMcs)) { } else if (flags.HasFlag(CompilerOptions.UseMcs)) {
preprocessorSymbols.Add("MCS"); preprocessorSymbols.Add("MCS");
} else { } else {
preprocessorSymbols.Add("LEGACY_CSC"); preprocessorSymbols.Add("LEGACY_CSC");
preprocessorSymbols.Add("LEGACY_VBC"); preprocessorSymbols.Add("LEGACY_VBC");
} }
if (flags.HasFlag(CompilerOptions.Preview)) {
preprocessorSymbols.Add("CS90");
}
return preprocessorSymbols; return preprocessorSymbols;
} }

2
ICSharpCode.Decompiler.Tests/PrettyTestRunner.cs

@ -155,7 +155,7 @@ namespace ICSharpCode.Decompiler.Tests
[Test] [Test]
public void DelegateConstruction([ValueSource(nameof(defaultOptionsWithMcs))] CompilerOptions cscOptions) public void DelegateConstruction([ValueSource(nameof(defaultOptionsWithMcs))] CompilerOptions cscOptions)
{ {
RunForLibrary(cscOptions: cscOptions); RunForLibrary(cscOptions: cscOptions | CompilerOptions.Preview);
} }
[Test] [Test]

12
ICSharpCode.Decompiler.Tests/TestCases/Pretty/DelegateConstruction.cs

@ -428,6 +428,18 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
return () => valueTuple.RenamedString; return () => valueTuple.RenamedString;
} }
#endif #endif
public static Func<T, T> Identity<T>()
{
return (T _) => _;
}
#if CS90
public static Func<int, int, int, int> LambdaParameterDiscard()
{
return (int _, int _, int _) => 0;
}
#endif
} }
public class Issue1867 public class Issue1867

Loading…
Cancel
Save