Changes in .3081 since .3071
Core
- E27631:
case in record not supporteduses the wrong error code - E27627: Add diagnostics for Cooper untyped param writes
- E27627: Add wider tests for untyped params across Island, Toffee, Echoes, and Cooper
- E27661: Bad error and w/o position wheh using
coalesceEmpty()with non-string type - E27667: C#: bad reformat
- E27623: C#: bad reformat for standalone
{}block - E27650: C#: bad reformat with tuple
- E27662: C#: NRE when using partial named tuple
- E27607: Cannot refactor/rename tuple var
- E27642: coalesce and Potential null value is implicitly cast to not nullable String
- E27627: Cooper: NRE on unconstrained generic casts
- E27627: Cooper: Preserve static (e.g. Color.RED/Color.red) and instance (eg Color.Red)
- E27627: Delphi/Island: fix implicit interface helper calls to pass Self, IID, and Obj
- E27651: Echoes: cannot assign InstanceType
- E27661: Fix
const varoverload resolution regression - E27614: Fixed regression with
Span/ReadOnlySpan<> - E27627: Island/Darwin: Match fix for Delphi/Win64 interface ABI: String result after Self, small records in registers
- E27627: Island/Darwin: untyped params work for all types, specifically including managed (strings, arrays, interfaced objects, etc)
- E27668: Mercury sample fails to build
- E27590: Mercury:
Continue Dodoesnt compile inDoloop - E27595: Nested generic param identity: allow nested type decls to shadow generic param type (includes logging)
- E27658: NRE for Refactor/Rename
- E27634: Oxygene is missing highlighting for "type" code block
- E27660: Oxygene: bad block range
- E27671: Oxygene: Can’t use
fieldafterconst - E27572: Ported xUnit compiler tests to EUnit
- E27615: Regression: Old-style extension methods failed in DCM (Self counted as param)
- E27627: Restore managed untyped param writes on Echoes
- E27612: Restore untyped param support (wip)
- E27597: Some code structures still affected the AST when ifdef-ed out
- E27627: Suppress E513 for DCM bare method statements
- E27568: Visual Studio: new project templates remain after Uninstall
- E27613: VS2026: cannot add project reference
- E27479: Water: nested types aren't shown in types tree
- Better error message for "parameter 1s "
"" - Debugger: add message if .pdb not found
- Debugger: Island: Darwin: debugger doesn't break on exceptions for Release builds
- Delphi Compatibility:
var/const x := nilinfers a type of Pointer for x - Delphi Compatibility: add support for $ERROR, $WARNING, $HINT, $FATAL message directives (equivalents of $MESSAGE WARN etc)
- Delphi Compatibility: Allow
constto refer to a function, when that function is in the implementation - Delphi Compatibility: Allow any constructor name (gated to 'legacy Create')
- Delphi Compatibility: E27604: Multiple interfaces with a property using the same getter fail with 'Type mismatch' (resolution confused among interfaces)
- Delphi Compatibility: explicit implements alias should resolve matching overload, not fail on sibling mismatches
- Delphi Compatibility: In DCM mode, generic parameters are not constrained to be objects (Delphi has no implicit constraint)
- Delphi Compatibility: Interface methods can be implemented by protected ancestor methods
- Delphi Compatibility: Minimal untyped param support (byte, integer, int64)
- Delphi Compatibility: parse Delphi LogicalAnd/Or/Xor operator names (DCM only)
- Delphi Compatibility: Set of (value1, value2) where the values are defined only there, and anon enums need to be created earlier.
- Delphi Compatibility: support [ref] attribute on parameters (eg [ref] const)
- Go to Definition NRE fix
- Merged EBuild
- Merged EUnit
- Merged Everwood5
- Merged InternetPack
- Merged IslandDelphi
- Merged libToffee
- Merged RTL2
- Oxygene: fixes for raw strings
- Regression: Invalid IR building IslandDelphi
Fire & Water
- E27588: Water: Exception: in CC error popup
- Action items
- Close old files on reload to avoid dupes in the Search tree
- CodeBit: Show diffs in cached approvals too
- CodeBot/Editor: Show a pop-up for "convert with CodeBot", and cancel paste if popup was dismissed.
- CodeBot/Editor: Show message when there was no code to paste; Also cancel Smart CC
- CodeBot: "thinking" indicator
- CodeBot: Access to search results
- CodeBot: Action Items
- CodeBot: Add dedicated CodeBot menu actions
- CodeBot: Add MCP client suppot (wip)
- CodeBot: Add MCP function provider support (wip)
- CodeBot: Adding the AL first account would not always activate it
- CodeBot: Agent-only skills
- CodeBot: Agent: allow different models in sub-agents
- CodeBot: allow buldpr arbitrary projects & solutions in background & with access to results
- CodeBot: Better "not a diff" annotation for new files
- CodeBot: better activity info
- CodeBot: Cursor keys and backspace didn't work in the Question text field
- CodeBot: default to sending messages on enter
- CodeBot: diff hunk headers are links and jump to the editor
- CodeBot: Don't hide a visible CodeBot panel after inserting code from a background AI task
- CodeBot: Easier global approval for "always save"/readonly shell and git commands
- CodeBot: highlight "dangerous" approvals
- CodeBot: Internal: cleanup
- CodeBot: Keep active approvals visible outside execution groups
- CodeBot: Let CodeBot see Codex and Claude skills in the solution folder (readonly)
- CodeBot: Manager sheet (wip)
- CodeBot: MCP Access
- CodeBot: MCP Server support
- CodeBot: New Security review profile & skill
- CodeBot: NRE proofing if activeTarget was nil
- CodeBot: Preferences: reload LM Studio models when URL is changed
- CodeBot: Prompt tightening
- CodeBot: Regression: could not start builds
- CodeBot: Run smart-paste via custom agent profile & skill
- CodeBot: Skill building
- CodeBot: Smarter Smart CC
- CodeBot: UI tweaks
- CodeBot: Use proper shell for external commands, to ensure PATHs
- CodeBot: v3 Agentic Mode (wip) with:
- Debugging: ignore RemObjects.Elements.EUnit.TestException by default
- Diff view for code changes
- Don't update per-file types on load, update them when the file comes into view
- Don't update per-file types on load; update them when the file comes into view
- E27506 Water: cannot uncheck "unvalid" picker value in settings (fine in Fire)
- Editor: at the end of a line, typing a comma or semicolon should replace a prior comma or period
- Editor: current type highlight should be more subtle than the current block, not less
- Editor: dimension keyword for Oxgene
- Editor: Flash selection when navigating to it from externally
- Fire: add “Show CodeBot” to CodeBot window, too & revise menu names
- Fire: auto-layout fix for BuildMessage view
- Fire: autolayout fix for Build Message view
- Fire: Bad autolayout on the project references view caused it to shrink
- Fire: bad autolayout on the project references view caused it to shrink
- Fire: Changed (defunct) menu item from "Run w/ Instruments " to "Open", and adjusted to new Instruments interface
- Fire: Close old files on reload to avoid dupes in Search Tree
- Fire: Disable Paste commands if the clipboard has no text
- Fire: Fix for splitter positions getting messed up on reload on Tahoe
- Fire: Menu item and short for Paste & Convert w/ CodeBot
- Fire: Menu item and shortcuts for Paste & Convert w/ CodeBot; disable Paste commands if clipboard has no text
- Function approval, progress & annotations
- Jumpbar: nested class is shown twice in the Jumpbar
- Let files in the search tree be expandable by default
- Let files in the search tree be expandable by default to "find all.”
- Menu item for toggling long vs short inline messages
- New tools for folder browsing, running builds, web access, question and more
- Regression: on-disk changes to .projitem in a shared project didn't trigger a reload
- Skills
- Solution Tree: sort on filename w/o extension, first
- Solution Tree: sort on filename w/o extension, first (regression, lose case-insensitivity)
- Sub-agents
- Water: cannot uncheck “invalid" picker value in settings (fine in Fire)
- Water: catch exceptions in dispatch
- Water: Manage accounts option was missing from CodeBot Preferences
- Water: renamed button on Accounts Manager for clarity
- Water: support for headers and sorting indicators in table view
- Water: Target Framework dropdown list is cut and isn't scrollable
- WebProjects: context menu to open current page in browser
- Website publishing improvements
- Xaml Preview (wip)
EBuild
- Cleaner output for
—debug-reference-resolving - Delphi Project Import: set
DefaultObjectModelto”Delphi” - Delphi Project Import: Settings tweaks
- ESP: Fix for ContentPlaceholders rendering too much
- ESP: Handle <%-- comment blocks
- ESP: Read web.config directly from the project folder and reuse an existing appSettings node when merging configuration, improving EnableWebConfig handling and avoiding duplicate sections.
- Handle
<script runat=“server”blocks - Island/Delphi: Support for Windows/arm64 architecture (disabled again for now, since Delphi doesn't come with the .dcps needed)
Elements RTL
- Add YAML serialization support for Json documents
- Expse Pid on
Process - Http: Add Cancel support to HTTP requests
- Http: Add proxy support (none, system, custom)
- Json deserializer: better location info for unterminated string/document
- Json deserializer: was too lenient and allowed some unterminated Json in TryFrom( with aAllowPartial = false
- Locking fix
- NRE fix in attribute lookup for nil namespace
- Serialization: Support Decimal (Echoes only and lossy)
- Serialization: support serialized-as-string-value enum members (in AspectGenerated Encode./Decode only)
Island DelphiSupport
- SetLength for arrays
- TProc/block combatibility (wip)
- Typo fix
Internet Pack
- Fix for buffered reads missing data
- HTTP: Support for manual chunked response streaming, e.g. for SSE
- Toffee: Server could crash the process when closed
- Toffee: Server failed on Cocoa, due to the use of wrong class instantiation code