Skip to content

Commit 496da98

Browse files
Add DecompilerSettings.ExtensionMembers and Language version 14
1 parent 7c336f9 commit 496da98

File tree

3 files changed

+27
-1
lines changed

3 files changed

+27
-1
lines changed

ICSharpCode.Decompiler/CSharp/CSharpLanguageVersion.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ public enum LanguageVersion
3636
CSharp11_0 = 1100,
3737
CSharp12_0 = 1200,
3838
CSharp13_0 = 1300,
39-
Preview = 1300,
39+
CSharp14_0 = 1400,
40+
Preview = 1400,
4041
Latest = 0x7FFFFFFF
4142
}
4243
}

ICSharpCode.Decompiler/DecompilerSettings.cs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,10 +171,16 @@ public void SetLanguageVersion(CSharp.LanguageVersion languageVersion)
171171
{
172172
paramsCollections = false;
173173
}
174+
if (languageVersion < CSharp.LanguageVersion.CSharp14_0)
175+
{
176+
extensionMembers = false;
177+
}
174178
}
175179

176180
public CSharp.LanguageVersion GetMinimumRequiredVersion()
177181
{
182+
if (extensionMembers)
183+
return CSharp.LanguageVersion.CSharp14_0;
178184
if (paramsCollections)
179185
return CSharp.LanguageVersion.CSharp13_0;
180186
if (refReadOnlyParameters || usePrimaryConstructorSyntaxForNonRecordTypes || inlineArrays)
@@ -2117,6 +2123,24 @@ public bool InlineArrays {
21172123
}
21182124
}
21192125

2126+
bool extensionMembers = true;
2127+
2128+
/// <summary>
2129+
/// Gets/Sets whether C# 14.0 extension members should be transformed.
2130+
/// </summary>
2131+
[Category("C# 14.0 / VS 202x.yy")]
2132+
[Description("DecompilerSettings.ExtensionMembers")]
2133+
public bool ExtensionMembers {
2134+
get { return extensionMembers; }
2135+
set {
2136+
if (extensionMembers != value)
2137+
{
2138+
extensionMembers = value;
2139+
OnPropertyChanged();
2140+
}
2141+
}
2142+
}
2143+
21202144
bool separateLocalVariableDeclarations = false;
21212145

21222146
/// <summary>

ILSpy/Languages/CSharpLanguage.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ public override IReadOnlyList<LanguageVersion> LanguageVersions {
117117
new LanguageVersion(Decompiler.CSharp.LanguageVersion.CSharp11_0.ToString(), "C# 11.0 / VS 2022.4"),
118118
new LanguageVersion(Decompiler.CSharp.LanguageVersion.CSharp12_0.ToString(), "C# 12.0 / VS 2022.8"),
119119
new LanguageVersion(Decompiler.CSharp.LanguageVersion.CSharp13_0.ToString(), "C# 13.0 / VS 2022.12"),
120+
new LanguageVersion(Decompiler.CSharp.LanguageVersion.CSharp14_0.ToString(), "C# 14.0 / VS 202x.yy"),
120121
};
121122
}
122123
return versions;

0 commit comments

Comments
 (0)