Дублирование числовых констант
Опишите ошибку При компиляции в таблице констант повторяются равные числовые значения, если они имеют различное представление в исходном коде
Воспроизведение ошибки issue.os:
x = 0;
x = 00;
x = 0000;
x = 0.00000;
x = 000.000;
x = 00000.0;
x = 000001;
x = 0001;
x = 01;
x = 01.20;
x = 001.200;
- v1 oscript -compile issue.os
.variableFrame: .constants 0 :type: Number, val: 0 1 :type: Number, val: 00 2 :type: Number, val: 0000 3 :type: Number, val: 0.00000 4 :type: Number, val: 000.000 5 :type: Number, val: 00000.0 6 :type: Number, val: 000001 7 :type: Number, val: 0001 8 :type: Number, val: 01 9 :type: Number, val: 01.20 10 :type: Number, val: 001.200 .code 0 :(LineNum 1) 1 :(PushConst 0) 2 :(LoadLoc 0) 3 :(LineNum 2) 4 :(PushConst 1) 5 :(LoadLoc 0) 6 :(LineNum 3) 7 :(PushConst 2) ... представление чисел сохраняется в исходном виде
- v2 oscript -compile issue.os
.variableFrame: .constants 0 :type: Number, val: 0 1 :type: Number, val: 0 2 :type: Number, val: 0 3 :type: Number, val: 0.00000 4 :type: Number, val: 0.000 5 :type: Number, val: 0.0 6 :type: Number, val: 1 7 :type: Number, val: 1 8 :type: Number, val: 1 9 :type: Number, val: 1.20 10 :type: Number, val: 1.200 .code 0 :(LineNum 1) 1 :(PushConst 0) 2 :(LoadLoc 0) 3 :(LineNum 2) 4 :(PushConst 1) 5 :(LoadLoc 0) 6 :(LineNum 3) 7 :(PushConst 2) ... сохраняется только дробная часть
Ожидаемое поведение 0 :type: Number, val: 0 1 :type: Number, val: 1 2 :type: Number, val: 1.2
Дополнительная информация 1С: {"Const",3, {"N",0}, {"N",1}, {"N",1.2} },
Так может и пофиг?
Разве что в v2 поправить, т.к. там больше нет ModuleImage и сериализованные константы заменены на BslValue сразу же