Release Notes

Filter
SDI - 2025.06.1647
June 5, 2025

Visual Studio Integration

Completion IntelliSense sessions now include an entry that displays the current user input as a possible completion item. This item behaves the same as any other completion item, and it's automatically suggested when the input doesn't match any of the options generally provided in the completion session. This change makes it easier to declare a new record variable by providing a completion alternative that doesn't overwrite a new variable name you have just typed with another option provided by IntelliSense.
SDI no longer runs PEVerify for .NET 6+ Synergy projects. Additionally, the "Run peverify on output assemblies" option is no longer available on the Build page of project properties for .NET 6+ Synergy projects.
We added support for referencing multiple repository projects from a single traditional Synergy or Synergy .NET project. To support this, repository project references include two new properties: "Default Repository". When the "Default Repository" property is set to true for a repository project reference, the referenced repository is used as the primary repository for build and IntelliSense. This property can be set to true for only one repository reference for a project. Changing this to true for a reference causes this property for other repository project references in the project to be set to false.
We fixed an issue where IntelliSense completion sometimes caused Boolean operators to be completed with the wrong case. Characters were intermittently uppercased--e.g., ".A" would complete to ".AND.". Uppercased characters are now consistently replaced with lowercased characters to match the selected completion item. 
We fixed the compiler to prevent an unexpected BADACCESS error on a protected generic method.
The compiler prevents a runtime access error from occurring when private fields, methods, or properties whose type is a type argument are inaccessible by giving an E_ACCESS error at compile time. This includes fields used in an object initializer.
When a traditional Synergy unit test fails, standard output content is now included in Test Explorer's results summary.
We fixed an issue that caused build failures during CLI (Command Line Interface) builds when a C# project was specified as a dependency for a traditional Synergy project.
We now handle multiple mainline project filename conflicts as follows:
  • In traditional Synergy, if multiple programs have the same name, TargetExt must be set on all compile includes for those programs or the build will fail. If all compile includes are unique, the TargetExt attribute is not necessary. (TargetExt="dbl" is not allowed.)
  • In Synergy .NET, the TargetExt attribute is not supported. Each compile include must have a unique name or the build will fail.
See “Multiple mainline file naming differences between traditional Synergy and .NET” in the Synergy/DE documentation for details and examples.


We fixed an issue that prevented the Go To Definition feature from displaying all fields when it was used for a repository field declared in this way: “.include <repositoryname> repository, norecord”, unless the field was the first field in the repository structure definition. (It would display the field that the Go To Definition was performed on and the fields below it in the repository structure definition.) Additionally, if the field was the last field in the structure definition, the Go To Definition would fail with an “out of range” exception.
Using Go To Definition on a repository .INCLUDE statement that does not include the type_spec argument (which specifies the type of data structure to create) no longer fails in the following scopes: subroutine, class, or method. Previously, selecting Go To Definition on "teststructure" in the following, for example, would not work:

    .include "teststructure" repository

However, using Go To Definition with "teststructure" in the following did work:

    .include "teststructure" repository, structure = "teststructure"

Now Go To Definition works in both cases.
Certain workflows that trigger project reloads, such as rapidly opening and closing  solutions or switching Git branches, can cause SDI to attempt to dispose of components managing background compiles and IntelliSense systems while these operations are still executing. We added handling to prevent exceptions from being displayed to users in these scenarios.
The compiler no longer reports an unexpected IMPTYPARG on a generic method call whose type argument is not specified when passing an array into a parameter whose type is a type argument.
We fixed IntelliSense colorization inconsistencies that occurred when pasting code snippets. This also resolves tracker 159518.
We fixed the .NET compiler's prototype generator (-symout) so that it correctly puts out a parameter whose type is an array of type arguments, preventing an unexpected TOKUDF error when that prototype is loaded.
Specifying options on the Compile page of project properties for a traditional Synergy project no longer adversely affects IntelliSense. Previously, options specified in this field caused errors in  background compiles needed for IntelliSense support.
We fixed an issue that caused dotnet publish to fail with a build error when attempting to publish a Synergy .NET multiple mainline project with a Linux target.

Selecting "Start Debugging" or "Start Without Debugging" for a specific mainline in a multiple mainline project (via the right-click context menu for the mainline) now builds the project if the mainline has changes. Previously, the project would not be built in this scenario. You would have to explicitly build it before starting, or work around this issue by setting the mainline project as the startup project, setting the mainline file as the startup object, and selecting "Start Debugging" or "Start Without Debugging" from the main Visual Studio menu.

We fixed an issue that caused Visual Studio to crash under certain circumstances when starting a debugging session.
We fixed a regression that reintroduced a previously resolved issue (tracker 38456), where no error dialog appeared when a debug session was started when the working directory was missing.
Opening multiple mainline files simultaneously no longer causes IntelliSense background compiles to hang and never complete.
We fixed an issue that caused project property pages to be marked as changed ("dirty") when the Build page of project properties was opened for a Synergy .NET 6 or higher project or a Synergy .NET Standard project.
We fixed an issue that caused the warning "The .NET Desktop Development workload isn't installed" to appear when this workload was installed on a system with both the current and preview versions of Visual Studio. This occurred the first time a project was created or opened with the current version of Visual Studio.
SDI - 2025.03.1285
March 5, 2025

Visual Studio Integration

We added support for displaying "mismatch" for parameters when hovering over subroutines/functions.
We added the ability for a user to disable the SDI update notification window by setting a registry value named SkipUpdateCheck on HKEY_CURRENT_USER\Software\Synergex\SDI to true.
We improved build message handling from the script compiler in SDI.
The obj\proto directory is now platform specific: an obj\proto directory is created for each built platform. Prior to this enhancement, any build, regardless of platform, would overwrite files in this directory, causing compiler directives and D_ADDR to result in changes in symbol behavior, which led to build and IntelliSense failures.
The compiler now reports a W_URESULT warning (1046, "Empty alpha literal may cause unexpected results at runtime") for an empty alpha literal within a USING statement, because it will match everything and subsequent USING statements will never be executed. To avoid this warning, we recommend that you examine and potentially remove empty alpha strings from USING statements and test them at runtime. 
When the ^VARIANT, or -qvariant, option is set in the project's compile property page, it will display the number that was input when hovering over the compiler directive in the Visual Studio editor.
We fixed an issue that caused "DBP is already in use" errors during the background compilations used to generate IntelliSense information. These errors prevented the creation of new DBP files, which are necessary for the generation of new symbols.
Compiling a file that contained a global non-CLS structure and whose name included a hyphen character caused an unexpected ILASM error. This has been fixed.
We fixed an issue that prevented linker errors from causing build failures for traditional Synergy projects.
An issue was found where using whitespace in front of a code line prevented the warning "W-NOTSUPT: Continuation character & is not supported after comment" from appearing. This has been fixed so that using a continuation character on the line after a comment will still report the warning regardless of whitespace or indentation on those lines. This change was applied to both traditional Synergy and Synergy .NET.
A warning will now be produced when a referenced project does not exist, making error reporting more user-friendly.
We resolved an unexpected failure that occurred when building a solution with an ELB project with the "-qvariant" option set on the project's compile property page.
We resolved an issue that sometimes caused projects to be skipped during Visual Studio builds. This issue primarily affected Visual Studio builds of Synergy repository projects, which use the SynergyDE build NuGet package, after a fresh clone of a code repository and prior to running a NuGet restore.
Handling for build error and warning messages has been updated to produce messages for all mainlines in a .NET multiple mainline project instead of just one.
A decimal descriptor can now be passed to an alpha parameter when -qrelaxed:param is specified.
A FOREACH iteration over a generic previously caused a TYPMISMCH error when the generic was used before it was declared. This has been fixed.
We resolved an issue where multi-mainline projects were failing to trigger a minimal analyze after loading or when edits were made to the multi-mainline file.
For multiple mainline projects that do not have a StartupObject set, selecting mainline files from Solution Explorer will no longer display the following error message: "Object reference not set to an instance of an object."
The .intellisense folder is no longer generated in the same location as the multi-mainline source files. It will now always be generated in the same directory as the multi-mainline .synproj.
.NET multiple mainline projects now base the output directory for documentation files off of the synproj file location rather than the location of the mainline file.
We fixed a concurrency issue that would intermittently cause a type that was designated as a boxed structure (such as @System.Guid) for a field, property, or parameter from an assembly to be resolved as @System.ValueType, which caused various type mismatch compiler errors.
For the Synergy .NET compiler, using the -doc option to produce XML documentation files will no longer generate multiple XML elements that have the same name attribute. This applies to documentation comments (starting with three semicolons on each line) that precede partial classes, partial interfaces, partial structures, and partial methods. For partial methods, the documentation comment on the method's implementation will be used for XML, and the documentation comment on the method's declaration will be ignored. For partial types (classes, interfaces, and structures), any partial type having a particular name (e.g., ExampleClass) will only use the last partial definition with a documentation comment to produce XML. The documentation comment for all other previous partial types with that same name (e.g., ExampleClass) will be ignored. Whenever a comment is ignored, a W-XMLDOC level 4 warning is reported, indicating the method or type associated with that comment. This change supports utilities that read XML documents but can't process duplicate names.
We fixed an issue where "Other options" specified on the Compile page for traditional Synergy projects were not passed to background compile operations, preventing IntelliSense from reflecting these settings.
A build error previously occurred while building .NET multiple mainline projects on an environment with .NET 9 installed for a missing _ChooseAppHost target. The target dependencies for .NET multiple mainline projects have been updated to include a different target that exists in both .NET 8 and .NET 9.
We improved the build error that is generated for a Synergy project when the "Working directory" field (on the Application page of project properties) specifies an invalid directory.
The "Committed by pressing the space bar" option on the IntelliSense page for Synergy DBL text editor options has been removed because it was conflicting with the "Default IntelliSense completion mode" option in the Visual Studio Advanced text editor options. (It would sometimes prevent this default from being used.) Synergy completion mode behavior is now controlled by the "Switch between automatic and tab-only IntelliSense completion" command (on the Edit > IntelliSense menu), which derives its initial state for every Visual Studio session from the "Default IntelliSense completion mode" setting. This determines whether an item is selected (boxed with a background highlight) or suggested (boxed without a background highlight) by default in completion sessions. When an item is selected, any valid commit character should complete the session with the selected item. When an item is suggested, only tab should complete the session with the suggested item. Any character or key other than those should close the session without completing the selected or suggested item. This behavior may be slightly different than in previous releases but should be more consistent going forward.
The dblnet compiler now emits a code that ensures a static constructor is run when compiling with -netcore, even if no static fields in that class are being set.
We fixed a compatibility issue that was causing a build failure for Script projects on machines with SDE versions lower than 12.3.1.
We updated our NuGet dependencies for SDI to address moderate/high severity vulnerabilities. As a result of these updates, we have increased our minimum supported version of Visual Studio to 17.8. To be able to install newer versions of SDI, you must use Visual Studio versions 17.8 or higher.
Go To Definition no longer fails to execute for repository and library includes when they are placed in the global scope.
When a Synergy .NET multiple mainline project is built from the command line, the mainline files that are built in the process are now listed in the output.
When you are offline or if there are service disruptions, the SDI update window will display "N/A" for the version and message, and the window will not display automatically.
Previously in certain scenarios, .NET/.NET Framework multiple mainline projects could incorrectly write background compile input and log files to directories other than the multiple mainline project's intermediate output directory. This has been resolved.
SDI - 2024.10.2239
October 25, 2024

Visual Studio Integration

The Synergy .NET compiler now reports a level 4 E_PASSUR warning when a field, record, or group is passed to a group parameter that is larger. (Without this, accessing a field in the group outside of the size of the passed-in alpha would cause a runtime exception.)
The continuation character is correctly reported as a level 3 warning rather than a NOTSUPT error for -qrntcompat values of 12030100 (12.3.1) and higher.
The Synergy .NET compiler no longer mistakenly reports a level-4 NARROWING warning when assigning an i2 value to a d5.
We fixed an issue that caused Solution Explorer to indicate that it was infinitely loading (it displayed a continuously spinning icon) when a multiple mainline project was expanded in Solution Explorer.
We fixed an issue that sometimes caused a SynergyTasks.DBLinkT error when a multiple mainline project had more than one mainline with the same name but different file extensions (e.g., mymain.dbl and mymain.abc).
With traditional Synergy projects, the following settings (set on the Compile page of project properties) were not passed to background compilations used behind the scenes for IntelliSense: 
  • Require prototype usage (-qreqproto), 
  • Define all undefined functions as ^VAL (-X, -qimplicit_functions). 
This issue sometimes caused unexpected red squiggles when editing in Visual Studio while these options were set.
Synergy .NET now supports ^REF parameter types that are value types, including non-descriptor integer types and CLS structures. (Other ^REF types cause E_NOTSUPT errors.) Note that the caller must also encapsulate argument with ^REF and the type must match exactly; otherwise an E_TYPPARM error will be reported.
The syn_reportevent() routine is now supported for Synergy .NET when qrntcompat is set to12050100.
We added diagnostic logging to dblnet to report information about asm2dbp. The asm2dbp program is a utility related to the Synergy .NET compiler that takes .NET assemblies and generates DBP files (prototype files). These diagnostics can be enabled by setting the environment variable ASM2DBP_DIAG to 1. To disable the diagnostics, delete the ASM2DBP_DIAG environment variable. Log files are written to the Synergex directory under the LocalAppData path (i.e. navigate to LocalAppData/Synergex where LocalAppData is an environment variable containing a directory path on Windows).
We updated the Synergy .NET compiler so that it now supports D_ADDR as a default parameter type.
We fixed an issue that caused hover-over IntelliSense for an "i" data type with a set size (e.g., "testvar, [4]i4") to display incorrectly (e.g., as "testvar, [#]i44").
New .NET and .NET Standard class library projects will now have "3 - Don't display warning levels higher than 3" as the default "Set the warning level" setting. ("Set the warning level" is a setting on the Compile page of project properties.) Previously, the default setting for this was "0 - Don't generate any warnings" for these project types.
The SDI Update window is no longer displayed in Visual Studio when the latest version of SDI is installed.
We fixed an issue that caused inconsistent red squiggle behavior for erroneous code in Synergy code files when these files were opened, as code was modified on the same line as erroneous code (which sometimes caused red squiggles to briefly appear), and when modifying code on other lines.
Startup Object highlighting now persists when an multiple mainline project is closed and then reopened. Previously, the highlighting would disappear when the project was reopened, though the Startup Object setting was still in force.
The Synergy .NET compiler now reports an E_NOFXD level 3 warning when performing # rounding on an expression that includes implied-decimal (d.) operands.
The default runtime is now 12030100 for dbl, dblnet, and dblink. This is the default version if -qrntcompat is not specified.
With Synergy .NET, when INIT was used on a fixed or pseudo array that had no initial value, it cleared only the first element of the array. This has been fixed so that it now clears the entire array, which matches INIT's behavior with traditional Synergy.
The "Latest" setting for "Target Synergy runtime" (on the Build page of project properties) now selects version 12.5.1, which currently corresponds to the 12.4 feature release. Previously "Latest" targeted 12.3.1.
The Synergy .NET complier now reports an E_ATOS error when a group or record is passed as an argument to a parameter that's a larger structure. Previously, this caused an exception (SynDataException).
We fixed the "Using" snippet so that it now results in valid code.
The Synergy .NET compiler no longer mistakenly reports an INVCALL error on a %MEM_PROC call when a subsequent lambda expression includes a subroutine call of MEM_PROC.
SDI - 2024.09.2004
September 5, 2024

Visual Studio Integration

Previously, if a build failed for a mainline in a multiple mainline project due to link errors, the other mainlines were not built. Additionally, builds did not occur in parallel. We updated this behavior so that builds for multiple mainline projects occur as if each mainline were an individual project. Mainlines are now built in parallel, and a mainline build failure due to link errors does not prevent other mainlines from building.
Microsoft is ending support for .NET 6 in November of 2024 (https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core), so we have updated Synergy .NET project types to default to .NET 8.
Using a global common in Synergy .NET no longer causes an unexpected ILASM error.
We fixed an issue that caused debugger information to fail to appear when Break All was used immediately after launching the Visual Studio debugger for traditional Synergy code. For instance, the Call Stack window would sometimes be blank, and in some cases the editor would become blank.
PEVerify is now run for all build outputs, including DLL and EXE build outputs, for .NET Framework multiple mainline projects.
The Go To Definition feature now works for .NET multiple mainline projects. Previously if you used this feature for a function for which another version existed in another project, Go To Definition would not always go to the correct file.
When opening a Synergy .NET solution in Visual Studio, an extra console window with the title asm2dbp.exe briefly appeared and disappeared upon loading the solution. This has been fixed so the extra window is no longer shown. To obtain this bug fix, both SDI and the Synergex.SynergyDE.Build NuGet package must be updated.
We fixed an issue that sometimes caused the Visual Studio UI to hang due to processing colorization changes when editing Synergy files. This was particularly true for large files with many method calls, and it resulted in delays when scrolling through the file or when typing. 
We fixed an issue that caused "invalid output path" build errors when building .NET Multiple Mainline projects.
With a Synergy project that is source controlled via TFS (Team Foundation Server), using the "Get Latest Version (Recursive)" function with the Synergy project would fail with an "Unspecified Error". This has been corrected.
The compiler for Synergy .NET no longer mistakenly reports an E_INVTYPSIZ error on a line that follows a FOREACH AS statement. The workaround for this issue was to eliminate the AS part of the FOREACH.
We fixed an issue with IntelliSense for Synergy .NET programs that was causing intermittent delays and missing display data. 
For Synergy .NET projects, the option to permanently delete a file from the Solution Explorer did not update the .synproj file, causing subsequent attempts to build or rebuild to result in an error stating that "Source file 'filename' does not exist". (This option is invoked by right-clicking the file, selecting Delete from the context menu, and then clicking the Delete button.)
When the get or set method of a property had capitalized letters (e.g. Get/Set or GET/SET), an unexpected E-NOOVR error ("No suitable method/property found to override") would occur when trying to override the property. This has been fixed so that the E-NOOVR error will no longer occur, but a W-CHGCASE (change case) warning will be issued instead. The W-CHGCASE warning indicates that the case of the overriding get or set method was automatically changed to match the base property. To remove this warning, make sure that the case of the base property methods exactly match those of the overriding property methods.
D_NETCORE is now displayed for .IFDEF IntelliSense completion. 
We fixed an issue with the way the SDI Update window retrieved values from the Windows registry. This issue would sometimes result in NullReferenceException and cause Visual Studio to crash
When a routine call is used for an initialization value in the data section, the compiler now provides more detailed and descriptive error text ("Feature not yet implemented: Runtime initialization of <field> not supported"for the E_NOTIMPLE error that it reports on the offending line.
When Visual Studio instances are running under different user contexts (e.g., a non-admin instance and an admin instance), attempts to retrieve the version information no longer result in unexpected exceptions due to permission restrictions. We enhanced SDI to handle such cases gracefully, ensuring reliable version information retrieval regardless of the user context.
We fixed an issue that prevented the WPF designer from loading for C# projects. The WPF designer no longer loads by default for Synergy WPF projects (because these project types are deprecated), but it does load for Synergy WPF projects when you select the designer view from the XAML view, and it now loads for C# projects when a solution includes both C# and Synergy projects. 
We fixed an issue that prevented the build system from detecting when a script project was out of date due to updates to the referenced repository.
We fixed an issue that prevented .NET and .NET Framework multiple mainline projects from building when the project folder name included a space.
We fixed issues with paths and output file handling that prevented the up-to-date check for Synergy .NET and .NET Framework multiple mainline projects from functioning correctly, causing these types of projects to rebuild with every solution build. 
The debugger now steps correctly for a conditional statement for a single line at the end of a begin/end block in Synergy .NET code. Previously, the debugger would incorrectly step to the single line even if the conditional statement evaluated to false. For example, the debugger would step to the Console.Writeline line of the following:

begin
   data ok, boolean, true
   if (!ok)
      Console.WriteLine("Fail")
end
SDI - 2024.07.1696
July 3, 2024

Visual Studio Integration

We added templates for the "Multiple Mainline (.NET)" and "Multiple Mainline (.NET Framework)" project types to the Synergex.Projects.Templates NuGet package.
The "dotnet add" and "dotnet add reference" commands are now supported for all project templates in Synergex.Projects.Templates.
We fixed an issue that prevented conditional breakpoints from working with Synergy .NET projects. 
We fixed an issue that caused Visual Studio to crash intermittently when editing DBL files in traditional Synergy projects. This issue was caused by a threading-related access violation in DBL’s IntelliSense processing.
We fixed an issue with IntelliSense-related processing for SDI that caused unintended errors and red squiggles to appear intermittently (though these did not affect builds).
We fixed an issue that caused a "missing method" exception at runtime when using JsonElement's indexer. This fix also prevents NOPRPMTH errors from occurring when property method names differ in case from "get" and "set" (e.g., "Get" or "Set") and the property is from another assembly.
We fixed a problem with the SynNETUnitTest project template (in the Synergex.Projects.Templates NuGet package) that caused projects created from this template to have an incorrect import statement.
We fixed a mismatch between the name of the .dbl file that's added to a newly created traditional Synergy unit test project created using the syTradUnitTestProj template (in the Synergex.Projects.Templates NuGet package) and the .dbl file specified in the .synproj file for the project.
We fixed an issue that sometimes caused an error when a build was stareted in Visual Studio while project property pages were open. 
New and unexpected %DBL-E-REFTYPMSMC errors no longer occur after updating SDI when there have been no source changes.
We improved SDI's problem manager logging by implementing a log rotation mechanism that prevents memory leaks.
We fixed an issue that prevented Start Debugging from working in Visual Studio 2022 version 17.10.x.
We fixed a Synergy .NET compiler issue that resulted in an access violation for an overloaded method with a parameter that was an array of boxed bytes.
An access violation no longer occurs when returning a literal string for a method whose return type is a boxed alpha array.
SDI - 2024.05.1447
May 3, 2024

Visual Studio Integration

We added an experimental option to reduce load times for Synergy projects. To invoke this feature, set the SDI_FAST_MODE environment variable to any value before starting Visual Studio. Note that this functionality may cause project references to load in an incorrect order, which could put a project in an invalid state.
SDI now supports Synergy .NET projects with multiple Synergy mainline programs. As part of this support, SDI includes two new project templates, “Multiple Mainline (.NET)” and “Multiple Mainline (.NET Framework)”, that enable you to create .NET 6+ or .NET Framework projects with multiple Synergy mainline programs that share project settings and references. A project created with one of these templates results in an application that is distributed as multiple EXEs. Each mainline source file results in a separate executable that can be run and debugged separately.
We fixed an issue that occurred when casting multiple function arguments to a Synergy integer type. Previously, a value cast in the last argument replaced values for the previous arguments in the same statement.
We fixed an issue where the Synergy DBL text editor formatting options did not get applied until the Tools > Options dialog page had been opened.
We fixed an issue that sometimes prevented IntelliSense from loading for Synergy .NET projects.
We fixed an issue that prevented the debugger from breaking on breakpoints that precede a lambda in an ASYNC method.
We fixed an issue that sometimes caused the error "SynergyTasks.DBLinkT task failed unexpectedly" when building a solution.
A FOREACH loop with an implicit element type sometimes caused an internal compiler error if the element type was a user-defined nested class declared after the loop in the same file. FOREACH loops now infer the type properly regardless of where the element class is placed in the file.
The compiler for Synergy .NET now reports an E_NOSPECL error when the braces for an inline lambda expression are missing.
We improved logging that occurs when a catastrophic failure occurs while a background compile is running to generate IntelliSense symbols for a .NET or .NET Framework project. This logging now writes the error text to the background.log file to make it easier to diagnose background compile failures with these platforms.
Synergy .NET Framework projects now support the PackageReferences NuGet package management format. 
The Synergy .NET compiler no longer mistakenly reports an E_NTTREF error for a parameter that is a structure from an assemble and that structure is defined in a namespace that has a class with the same name as the namespace.
We fixed an issue that caused unexpected results for arithmetic operations such as subtraction with two i4 variables that had been cast to i8.
We fixed an issue that caused a NOTSUPT error ("due to incorrect size...") when there is a structure is within a record, group, or structure. Additionally, the workaround for this issue (DBLDIR:\bin\dblnet.hcs) is no longer supported.
With Synergy .NET, the "Working Directory" setting, which is set on the Application page of project properties, is now stored as a relative path (relative to the solution directory).
We fixed the parser to properly report a lambda syntax error when the return type is incorrectly declared on a lambda.
We reinstituted a warning message the displays when prototype files (.dbp files that are used internally for IntelliSense symbols) are locked for I/O for extended periods. 
Casting an enumeration property to an integer no longer causes an error to occur when the compiled program is checked with PEVerify or ILVerify.
We fixed an issue that prevented colorization from being refreshed for code in an .IFDEF statement when the .IFDEF condition was modified.
When the final parameter for a routine call is "end", and this is on a separate line that begins with an ampersand (&), IntelliSense no longer mistakenly interprets "end" as the conclusion of a BEGIN-END block. Previously, this was misinterpreted, resulting in incorrect indentation for subsequent lines of code.
We resolved problems with IntelliSense showing unexpected errors/red squiggles on the wrong line when opening a file in the Visual Studio editor.
We now prevent a NullReferenceException error at runtime when declaring a sized descriptor parameter on an ASYNC method.
The compiler for Synergy .NET now reports an IVBAD error if an initial value is provided for a boxed enum or an array of boxed enums.