.NET Decompiler with support for PDB generation, ReadyToRun, Metadata (&more) - cross-platform!
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

87 lines
1.3 KiB

namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
{
internal class CompoundAssignmentClassReceiver
{
public int Value;
}
internal struct CompoundAssignmentValueReceiver
{
public int Value;
}
internal static class ExtensionCompoundAssignmentOperators
{
extension(CompoundAssignmentClassReceiver c)
{
public void operator +=(int amount)
{
c.Value += amount;
}
}
extension(ref CompoundAssignmentValueReceiver r)
{
public void operator +=(int amount)
{
r.Value += amount;
}
public void operator -=(int amount)
{
r.Value -= amount;
}
public void operator ++()
{
r.Value++;
}
public void operator --()
{
r.Value--;
}
public void operator checked +=(int amount)
{
checked
{
r.Value += amount;
}
}
public void operator checked ++()
{
checked
{
r.Value++;
}
}
}
}
internal static class ExtensionCompoundAssignmentOperatorsUseSites
{
public static void UseStruct(ref CompoundAssignmentValueReceiver r)
{
r += 5;
r -= 3;
r++;
r--;
}
public static void UseStructChecked(ref CompoundAssignmentValueReceiver r)
{
checked
{
r += 5;
r++;
}
}
public static void UseClass(CompoundAssignmentClassReceiver c)
{
c += 5;
}
}
}