Traditional Synergy Compiler DBL-E-NFND Should Mimic CS1061
Consider the following invalid Traditional Synergy Program:
namespace MyNameSpace structure MyStructure MyField ,a1 endstructure endnamespace main proc begin data localStruc ,MyStructure localStruc.MyFakeField = "" end endmain
When you attempt to compile this you encounter this error:
Error DBL-E-NFND: %DBL-E-NFND, localStruc.MyFakeField not found : localStruc.MyFakeField = ""
Now compare this similar invalid C# Program:
namespace CSharpStructError { class Program { static void Main(string[] args) { MyStructure localStruc = new MyStructure(); localStruc.MyFakeField = ""; } } struct MyStructure { } }
When you attempt to compile you encounter this error:
error CS1061: 'MyStructure' does not contain a definition for 'MyFakeField' and no accessible extension method 'MyFakeField' accepting a first argument of type 'MyStructure' could be found (are you missing a using directive or an assembly reference?)
This is the Microsoft Documentation for CS1061: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/cs1061
Also note that Intellisense makes it very easy to quickly identify the incorrect code (this is a different ask; I will open a separate idea):
While in this case the Synergy Error might be straight forward to read; however as you get into more complex scenarios it gets more difficult to read within 250ms; for example the issue that triggered this was:
%DBL-E-NFND, shipVia2RouteCat[I4].ShipViaRouteCategoryID not found : shipVia2RouteCat[recCnt].ShipViaRouteCategoryID = shipViaRouteCat.ShipViaRouteCategoryID
There is a lot going on and having similarly named variables did not help; in this case we feel the error should have been similar to this (mimicking CS1061):
'sShipViaRoute2ShipVia' does not contain a definition for 'ShipViaRouteCategoryID'
This would have quickly identified the issue for us.
Please log in to comment on this idea.