mirror of https://github.com/icsharpcode/ILSpy.git
Tree:
24ec3327e7
christophwille/closedhierarchies
christophwille/membench
compound-assignment-operators
fix/1982-params-attribute-args
fix/2040-invalid-xml-characters
fix/2093-navigateto-reference-assembly
fix/2362-xalz-references
fix/2372-address-taken-by
fix/3282-indexer-optional-arguments
fix/3568-record-member-order
fix/4059-deconstruct-out-slots
fix/lambda-parameter-syntax
fix/scroll-children-on-expand
gh-pages
ldmembertoken
master
natural-type-lambdas-methods
null-coalescing-assignment
release/10.1
release/6.2
release/7.1
release/7.2
release/8.1
substring-optimizations
tests/829-async-method-builder-override
tests/829-collection-expressions
tests/829-compound-assignment-operators
tests/829-coverage-audit
tests/829-expression-tree-named-optional-args
tests/829-expression-variables-in-initializers
tests/829-extended-property-patterns
tests/829-extension-members
tests/829-extension-operators
tests/829-file-local-types
tests/829-improved-definite-assignment
tests/829-improved-overload-candidates
tests/829-inline-arrays
tests/829-interpolated-string-improvements
tests/829-lambda-param-modifiers
tests/829-list-patterns
tests/829-lock-object
tests/829-mixed-deconstruction
tests/829-null-coalescing-assignment
tests/829-null-conditional-assignment
tests/829-object-initializer-indexer
tests/829-overload-resolution-priority
tests/829-params-collections
tests/829-pattern-matching-improvements
tests/829-primary-constructors
tests/829-ref-unsafe-in-iterators-async
tests/829-sealed-record-tostring
tests/829-target-typed-conditional
tests/829-tuple-comparison
win-a11y-textsize
1.0-Beta
1.0-M1
1.0-M2
1.0-M3
1.0.0
2.0.0
2.1
2.2
2.3
2.3.1
3.0-Preview1
3.0-Preview2
3.0.2
v10.0
v10.0-preview1
v10.0-preview2
v10.0-preview3
v10.0.1
v10.1
v10.1.1
v11.0
v11.0-preview1
v11.0-rc
v2.3.2
v2.4
v3.0
v3.0-beta1
v3.0-beta2
v3.0-beta2a
v3.0-beta3
v3.0-beta4
v3.0.1
v3.1-beta1
v3.1-final
v3.1-rc
v3.2-beta
v3.2-rc
v3.2.0
v4.0
v4.0-alpha1
v4.0-beta1
v4.0-beta2
v4.0-beta3
v4.0-rc1
v4.0-rc2
v4.0.1
v5.0
v5.0-preview1
v5.0-preview2
v5.0-preview3
v5.0-preview4
v5.0-rc1
v5.0.1
v5.0.2
v6.0
v6.0-preview1
v6.0-preview2
v6.0-preview3
v6.0-preview4
v6.0-rc1
v6.1
v6.2
v6.2-preview1
v6.2-preview2
v6.2.1
v7.0
v7.0-preview1
v7.0-preview2
v7.0-preview3
v7.0-rc1
v7.0-rc2
v7.1
v7.2
v7.2-preview1
v7.2-preview2
v7.2-preview3
v7.2-preview4
v7.2-rc
v7.2.1
v8.0
v8.0-preview1
v8.0-preview2
v8.0-preview3
v8.0-preview4
v8.0-rc1
v8.1
v8.1.1
v8.2
v9.0
v9.0-preview1
v9.0-preview2
v9.0-preview3
v9.0-rc
v9.1
${ noResults }
3 Commits (24ec3327e7fa9fcc56159bbbd7cfafdfc3e5ee89)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
590793fd21 |
Document the two roles of the language version in the settings API
The language version appears in two places that share a name but not a concept, which repeatedly reads as one confused API: on DecompilerSettings it is a construction shortcut (SetLanguageVersion initializes the feature flags once and the version is not stored, so the flags are the only state and the call is deliberately one-way), while on WholeProjectDecompiler it is an export parameter (the LangVersion stamped into the project file, defaulting to GetMinimumRequiredVersion() and rejected below it as a safety net against exporting uncompilable projects). Spell both roles out in the XML docs so the distinction no longer has to be reverse-engineered. Assisted-by: Claude:claude-fable-5:Claude Code |
1 month ago |
|
|
401530b86d |
Let ExtensionMethods, UseLambdaSyntax and UseEnhancedUsing raise the minimum version
These three settings were disabled by SetLanguageVersion for older targets but, unlike every comparable syntax-preference setting, never raised GetMinimumRequiredVersion while enabled - an omission that had gone unnoticed in the handwritten version bookkeeping. Drop the AffectsMinimumRequiredVersion escape hatch that reproduced it. Assisted-by: Claude:claude-fable-5:Claude Code |
1 month ago |
|
|
b75ea27800 |
Generate DecompilerSettings boilerplate from [DecompilerSetting] attributes
Every version-gated setting was bookkept in four places that had to stay in sync by hand: the property boilerplate, SetLanguageVersion, GetMinimumRequiredVersion, and the [Category] display string - and that sync had already drifted in a handful of settings. A new source generator in ICSharpCode.Decompiler.Generators now derives all four from a single [DecompilerSetting] attribute on a partial property: backing field, accessors with change notification, the version-derived [Category], and both version methods. [Description] stays handwritten because its resource keys are irregular and are grepped from the resx. This commit is a 1:1 translation: the current inconsistencies are reproduced exactly (AffectsMinimumRequiredVersion = false on ExtensionMethods, UseLambdaSyntax and UseEnhancedUsing; no gate on SwitchOnReadOnlySpanChar), verified against the old build by comparing SetLanguageVersion and GetMinimumRequiredVersion behavior for every setting at every language version, plus a reflection diff of the full per-property attribute surface. Assisted-by: Claude:claude-fable-5:Claude Code |
1 month ago |