I have a simple test case :
namespace ConsoleApplication15; interface uses System.Linq; type Program = class public class method Main(args: array of String): Int32; end; implementation class method Program.Main(args: array of String): Int32; begin var i : Integer := 230 ; if i in [210..230] then writeLn('OK') else writeLn('ERR'); end; end.
The console app project works fine (OK result) in .NET, .NET core 2.2.x, but not in .NET core 3.x. (ERR result). Why? Is this a platform problem (I also noticed different test results after changing 2.2.x to 3.1 in real projects) or Elements compiler change (we updated to build .2505)?
I also noticed a double-precision change between core 2.2 and 3 when using Convert.ToString(double), e.g. 100.1 sometimes returns 100.100000000001 but it’s a different issue.