mirror of https://github.com/icsharpcode/ILSpy.git
Branch:
fix/lambda-parameter-syntax
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
${ item.name }
${ noResults }
3 Commits (fix/lambda-parameter-syntax)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
a926ae7e8b |
Show a hover for the indexer of a dynamic index access
A dynamic index access (a[b]) gave its IndexerExpression a DynamicInvocationResolveResult with no symbol, so the brackets carried no tooltip. Synthesize an indexer (FakeProperty, IsIndexer) on the target type with the index parameters typed from the callsite delegate, and attach it. Route it hover-only by detecting a DynamicInvocationResolveResult directly on the node - which also covers an invoke-member's own parentheses, so those stop producing a dead navigation link too. Assisted-by: Claude:claude-fable-5:Claude Code |
2 months ago |
|
|
cba8b0d7a5 |
Test dynamic member tooltip rendering
Lock the hover content the dynamic-tooltip work produces. Ambience-level cases (CSharpAmbienceTests) pin that SpecialType.Dynamic renders as "dynamic" and that a synthetic dynamic method renders its return and per-argument types - including the full hover form, confirming the unnamed synthetic parameters collapse to their types with no dangling name. An end-to-end case (HoverOnlyReferenceTests) decompiles a dynamic call and renders the symbol GetSymbol hands back, exercising the actual synthesis (argument typing from the callsite delegate), not a hand-built stand-in. Assisted-by: Claude:claude-fable-5:Claude Code |
2 months ago |
|
|
4ff11dd796 |
Add a hover-only reference mode, distinct from local highlighting
References had two behaviors encoded in one bool: navigable links, and "local" references that are non-navigable but highlight all occurrences on click. Synthesized dynamic members were routed through the latter, so they picked up the occurrence highlight even though each use is a distinct synthetic member with nothing to group. Model the three modes explicitly with a ReferenceMode enum on ReferenceSegment (Link / LocalHighlight / HoverOnly). Dynamic members, the dynamic constructor and the dynamic keyword now use HoverOnly: they still show a hover tooltip (BuildHoverContent resolves any IEntity reference regardless of mode) but get the arrow cursor, do not navigate, and do not highlight. Local variables keep LocalHighlight. Plumbed via a new isHoverOnly flag on ITextOutput.WriteLocalReference. Assisted-by: Claude:claude-fable-5:Claude Code |
2 months ago |
|
|
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 |
2 months ago |