mirror of https://github.com/icsharpcode/ILSpy.git
Branch:
compound-assignment-operators
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 }
1 Commits (compound-assignment-operators)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
76afcae7d0 |
Remove UI tests that only restate the code they cover
These fixtures were written while porting to Avalonia, as an author's own verification step rather than as coverage: reflection asserting that a type derives from its base and that a property has the type it is declared with; literals (MinHeight 29, Padding 3, MaxWidth 900) copied out of the .axaml beside them; a property override asserted only so pane descendants stay reachable from tests. None of them can fail except when someone deliberately edits the line they mirror, and then they fail as a chore. StartupPerfTests keeps its two [Explicit] benchmarks, which print per-phase timings worth reading. The third was a wall-clock assertion (8 CoreLib copies must settle in under 15s) that ran in CI, where a shared runner decides the verdict; as [Explicit] it would be strictly dominated by the 200-assembly benchmark it was derived from, so it goes. Two fixtures are trimmed rather than deleted, because their kernel is real: XmlDocLoader's ref-pack fallback has no other test in the repo, and the MenuIcon metadata rasterisation was dropped once during the port already. Both now assert that without booting MainWindow to reach it. This is worth about two seconds - it buys reviewers less to read, not CI less to do. Assisted-by: Claude:claude-opus-5:Claude Code |
1 month ago |
|
|
51aafa0fd9 |
Move ILSpy UI code back to the ICSharpCode.ILSpy root namespace
The Avalonia port had placed the UI app in an ILSpy.* namespace tree, while the csproj RootNamespace and every prior release (through 10.1) use ICSharpCode.ILSpy.*. Restoring the historical namespace reduces the public API diff against release/10.1 for plugin authors and removes the shadowing that forced global:: qualifiers in the test project. The Images class and AccessOverlayIcon enum move back into the root namespace (as in 10.1), since an ICSharpCode.ILSpy.Images namespace would shadow the Images class for all code inside ICSharpCode.ILSpy. Assisted-by: Claude:claude-fable-5:Claude Code |
3 months ago |
|
|
00b7cc5f26 |
Stop DecompilerTextView leaking via the static ThemeManager
DecompilerTextView subscribed to the process-lived ThemeManager.Current. ThemeChanged in its constructor and never unsubscribed, so every view (one per decompiler tab) stayed rooted by the singleton for the lifetime of the process -- a slow leak that, in the headless suite, accumulates views across every test and adds GC pressure that tips timing-marginal tests. Bind the subscription to the visual-tree lifetime instead (subscribe on attach, drop on detach); since Dock hides and re-shows tab content, this also re-subscribes on re-attach, which the sibling DecompilerTextEditor's subscribe-in-ctor variant does not. Also quiet MenuIconWiringProbe: it dumped every menu leaf via TestContext.Out on every run. Collect the leaves instead and name the icon-bearing ones only in the assertion's failure message, so a passing run is silent. |
3 months ago |
|
|
5e37e62006 |
Show MEF-declared icons on main menu and context menus
Both menu builders previously ignored the MenuIcon/Icon metadata on ExportMainMenuCommand and ExportContextMenuEntry: the strings were preserved through the WPF -> Avalonia port (~12 main-menu commands declare MenuIcon, plus a handful of context-menu entries), but the NativeMenuItem and MenuItem instances they fed into had no icon assignment. Avalonia's toolbar already had a private path-to-image reflection resolver; this lifts it into Images.cs as a shared helper so the two menu sites can consume it too. NativeMenuItem.Icon is Bitmap-typed (macOS NSImage is the platform target and has no vector form), so the main-menu path rasterises SVG icons through RenderTargetBitmap at attach-time -- one-time cost per menu item at boot. MenuItem.Icon accepts any Control, so the context-menu path keeps the IImage live inside an <Image> control and preserves vector rendering. SaveCodeContextMenuEntry and AssemblyTreeNode.ReloadAssembly were missing Icon metadata even though their main-menu equivalents declared MenuIcon. Adding Icon = "Images/Save" and "Images/Refresh" respectively, matching the toolbar/menu sibling. Other context-menu entries without Icon metadata are intentionally textless: most are node-type-specific actions (Remove, Copy results, Search MSDN) where no main-menu sibling exists to inherit an icon mapping from. The App.axaml separator style selector "MenuItem Separator" only matched separators nested inside a templated MenuItem (the main-menu submenu case). ContextMenuProvider adds Separator directly to ContextMenu.Items between Category groups, where there's no MenuItem ancestor for the selector to match -- so context-menu separators rendered with the Simple theme's default near-invisible style. Extending to "MenuItem Separator, ContextMenu Separator" covers both surfaces; toolbar and docking-chrome separators stay scoped out. MenuIconWiringProbe walks the materialised NativeMenu tree post-build and asserts File > Open has its Icon populated -- regression net for the metadata-flow path. Assisted-by: Claude:claude-opus-4-7:Claude Code |
3 months ago |