mirror of https://github.com/icsharpcode/ILSpy.git
Tree:
f2b51d2c34
christophwille/closedhierarchies
christophwille/contributing
christophwille/decompilerdocs
christophwille/membench
claude/ilspy-pr-3839-review-uo8q7r
collection-expression-tests
copilot/add-field-keyword-auto-properties
deconstruction-fixes
fix-3475-anonymous-type-null
fix-3860-outvar-explicit-type
fix/3465
fix/3518
gh-pages
issue1638
master
natural-type-lambdas-methods
null-coalescing-assignment
release/10.1
release/6.2
release/7.1
release/7.2
release/8.1
stash/beautify-enum-member-declarations
stash/dynamic-await
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
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 }
4 Commits (f2b51d2c341e7635fa48aa4387ccc49ded84b21a)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
f2b51d2c34 |
Fix #2078: Generic local functions not highlighted properly
LocalFunctionMethod.MemberDefinition returned the instance itself, so the declaration of a generic local function (whose base method is an identity specialization) and its use sites (whose base methods carry the use-site substitutions) never compared equal, and click-highlighting could not group them. Returning a wrapper around the unspecialized base method lets the token writer record the same definition object for the declaration and all use sites. Method-group references to local functions additionally need their own lookup, because GetSymbol() does not surface a MethodGroupResolveResult. The token-writer tests now keep the PEFile alive for the duration of each test: recorded references are type-system entities that lazily read from the PE image, and formatting one in an assertion message after disposal crashed with an AccessViolationException. Assisted-by: Claude:claude-fable-5:Claude Code |
3 days ago |
|
|
847324e836 |
Fix #3845: Add option to expand XML documentation comments
Doc-comment folds were created with defaultCollapsed hardcoded to true, so /// blocks always started collapsed. The new Display option is bridged into DecompilerSettings like the other expand flags and drives the fold's default state. Detecting the last line of a doc-comment block requires sibling navigation between trivia nodes, so trivia now carry parent, sibling list, and index state. That state lives on the Trivia subclass to keep AstNode's size unchanged, and the tree API treats trivia as a separate navigation space: Next/PrevSibling and Remove work within the owning list, Slot is null, ReplaceWith throws instead of aliasing the trivia index into the parent's child slots, GetNextNode/GetPrevNode stop at the list boundary, Clone and CopyAnnotationsFrom deep-copy and reparent trivia, and CheckInvariant validates the trivia lists. Assisted-by: Claude:claude-fable-5:Claude Code |
4 days ago |
|
|
04505bbdf2 |
Highlight and scroll to the changed instruction in the ILAst view
The C# debug-steps view highlights and centers the exact AST node a transform changed; the ILAst view already had the step tree and replay-at-step but produced no highlight. Bring it to parity. IL rendering has no token-writer seam like the C# output visitor, so per-instruction text spans are recorded by bracketing ILInstruction.WriteTo via a new INodeTrackingOutput. The dominant inst.ReplaceWith(newInst) transform pattern detaches the instruction passed to Step, so ILTransformContext gains EndStep to record the produced instruction; Stepper additionally records the position's ancestor chain as fallback candidates before the step-limit throw, so the "show state before" view -- which halts at the selected step -- still resolves to a surviving ancestor (ultimately the ILFunction). The highlight-range resolver is shared with the C# language. Assisted-by: Claude:claude-opus-4-8:Claude Code |
6 days ago |
|
|
34c50c19b7 |
Fix #2035: Make the override modifier a link to the overridden member
The decompiled view only offered navigation on member names; finding what an override actually overrides required opening the analyzer. Attaching a reference to the modifier token gives the same go-to-definition affordance Visual Studio has on 'override'. The reference resolves via InheritanceHelper.GetBaseMember, so it targets the nearest overridden member and degrades to plain text when the base member cannot be resolved. Assisted-by: Claude:claude-fable-5:Claude Code |
4 weeks ago |