# Compiler

***

## 5.2.0

08 Apr 2026

* Updated to .NET 10
* Fixed: Using C# reserved keywords (e.g., "event", "delegate") as names for service event parameters caused compilation errors

***

## 5.1.0

22 Jan 2026

* Added support for nullable value types
* System.Text.Json can now be used in expressions
* Fixed: "$." was unexpectedly converted to ASCII codes (\_36\_46) in expressions

***

## 5.0.2

13 Oct 2025

* Fixed: Solution debugging did not work when the Utilities plugin was not included in the solution. Solution debugging would create a thread but never start the process to debug.

***

## 5.0.1

18 Jul 2025

* Fixed: Solution debugging gets stuck starting a thread when that solution doesn't include the Utilities plugin

***

## 5.0.0

16 Jul 2025

* Allow for dynamic Result Type on the CallXeroAPI operation
* Fail sooner when a function property for a service function parameter is not found
* Fixed: Type converters that do not specify the assembly were searched for in the executing assembly. They are now searched for in the assembly in which the type converter is declared.
* Fixed: Operation is canceled validation appears when moving a large folder
* Fixed: Expression fails validation when references use the null-conditional operator (?.)
* Fixed: Test Failures are combined when using the "Are equal" assertion
* Fixed: A TryCatch function within a Catch execution path fails to compile
* Fixed: The compilation error "The type ... exists in both \[some assembly] and \[same assembly, different version]" by loading only the latest version of each assembly referenced by plugins.

***

## 4.0.1

26 Feb 2025

* Fixed: Seemingly random exceptions started to occur, that also disappeared again on their own, when repeatedly debugging the solution or running tests. The issue was the build-up that happened and worsened with every compilation of the solution.

***

## 3.0.3

16 Oct 2024

* Fixed: TryCatch function does not log to Debug Output
* Fixed: Linx compilation failed due to an integer overflow when too large numbers were converted to smaller numeric types. `Substring()` and `IndexOf()` are two functions where this was a known issue.

***

## 3.0.2

14 Aug 2024

* Fixed: TryCatch function duplicates exception message. This also fixes the exception message duplication seen in Linx Server when a function fails.
* Fixed: Can't use Integer variable as the start-index of an IndexOf() function call
* Fixed: Comments at the start of an expression causes a validation
* Fixed: Integer overflow when casting

***

## 3.0.1

22 Jul 2024

* Fixed: Conversion of TimeSpan to string

***

## 3.0.0

15 Jul 2024

* Support for .NET 8.0
* Support for the Solution Debugger
* Support for starting and stopping of services via a process in a solution
* Fixed: Assigning to property of type List caused a "Type not supported" exception
* Fixed: Single Instance Process run in parallel caused synchronization exceptions
* Fixed: Invalid cast exception when accessing a setting whose type is a nullable type

***

## 2.4.0

1 Dec 2023

* Support for the platform independent version of the Async plugin

***

## 2.3.1

15 Nov 2023

* Fixed: A NullReferenceException would happen in the Debugger in Designer when stopping a paused process that contained an async function.

***

## 2.3.0

3 Nov 2023

* Added coroutine support (async-await)
* Fixed: When #.System.Random was used, an unexpected validation appeared

***

## 2.2.0

12 Sep 2023

* Changed the plugin from Windows-specific to be platform-independent
* Support assigning a DateTimeOffset-typed value to a variable of type DateTime

***

## 2.1.2

24 Aug 2023

* Fixed: Prepending a name/value with @ in an expression caused an InvalidOperationException to be thrown
* Fixed: Using "Equals", "GetType", "ToString", "GetHashCode" and others as property names on a type caused an exception at runtime
* Fixed: A validation appeared when using a null-conditional operator (?.) before a method call. This is valid and should not cause a validation to appear

***

## 2.1.1

13 Jun 2023

* Fixed: '#.' was removed when clicking SAVE in the Expression Editor or ENTER in the property grid
* Fixed: Typing @ instead of " caused an exception
* Fixed: Reserved names, e.g., Equals, as property names in types no longer cause compilation errors

***

## 2.1.0

10 Feb 2023

* Create necessary framework for async operations
* Fixed the issue where JSON failed to convert int to string
* Add the List functions mentioned in the docs to the Expression Editor
* Function now exits immediately after a return when debugging
* When debugging, show Function parameters and Result in the Debug Values when function completes
* Allow using C# classes, like Math, in expressions
* When debugging a service, log to the debug output when another call/invocation is rejected

***

## 2.0.0

27 Sep 2022

* Add a Return function to the Linx plugin
* Services now support Functions
* Add more List functions to the 'Variables and functions' in the Expression Editor
* Fixed: $.System bugs in expressions
* Fixed: GenerateRandom Byte List result did not act like a List
* Fixed: Service required a restart after deployment before working
* Fixed: $.Result.HttpContext.StatusCode cannot convert Int64 to Int32
* Fixed the bug where could not be assigned to an implicitly-typed variable

***

## 1.1.7

23 Jun 2022

* Fix bug: Conversion issue on assignment when internal type of List was of type IList

***

## 1.1.6

6 May 2022

* Fix bug: Incorrect conversion to object-typed properties

***

## 1.1.5

28 Apr 2022

* Fix bug: "Object reference not set to an instance of an object" validation in expression
* Fix bug: Casting validation error in expression

***

## 1.1.4

14 Apr 2022

* Allow type conversions when deserializing JSON data

***

## 1.1.3

12 Apr 2022

* Fix bug: Encoded ToString method with encoding parameter type not working

***

## 1.1.2

22 Mar 2022

* Fix bug: Unhandled exception when expression contains invalid syntax, e.g., invalid property names

***

## 1.1.1

18 Mar 2022

* Fix bug: Setting internal exception message in compiler causes missing exception data at runtime

***

## 1.1.0

17 Mar 2022

* First release
