# Compiler

***

## 5.2.1

06 May 2026

* Fixed: Expression compilation failed when a system reference was followed by a value reference
* Fixed: Suppress warnings about assembly reference version mismatches during expression compilation

***

## 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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.linx.software/releasenotes/solution-dependencies/compiler.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
