This commit is contained in:
Mikhalkovich Stanislav 2019-08-29 19:14:51 +03:00
parent ed73eda4f3
commit e13f82e679
10 changed files with 32 additions and 31 deletions

View file

@ -15,7 +15,7 @@ internal static class RevisionClass
public const string Major = "3";
public const string Minor = "5";
public const string Build = "0";
public const string Revision = "2238";
public const string Revision = "2241";
public const string MainVersion = Major + "." + Minor;
public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision;

View file

@ -1,4 +1,4 @@
%COREVERSION%=0
%REVISION%=2238
%MINOR%=5
%REVISION%=2241
%COREVERSION%=0
%MAJOR%=3

View file

@ -1 +1 @@
3.5.0.2238
3.5.0.2241

View file

@ -1 +1 @@
!define VERSION '3.5.0.2238'
!define VERSION '3.5.0.2241'

View file

@ -92,7 +92,7 @@ type
// -----------------------------------------------------
///!#
/// Класс списка графических объектов
ObjectsType = class//(IEnumerable<ObjectWPF>)
ObjectsType = class(IEnumerable<ObjectWPF>)
private
l := new List<ObjectWPF>;
d := new Dictionary<FrameworkElement,ObjectWPF>;
@ -130,14 +130,14 @@ type
property Items[i: integer]: ObjectWPF read GetItem write SetItem; default;
function Seq: sequence of ObjectWPF := l;
{function GetEnumerator: IEnumerator<ObjectWPF>;
function GetEnumerator: IEnumerator<ObjectWPF>;
begin
Result := l.GetEnumerator;
end;
function System.Collections.IEnumerable.GetEnumerator: System.Collections.IEnumerator;
begin
Result := l.GetEnumerator;
end;}
end;
end;

View file

@ -2644,6 +2644,9 @@ function EmptyAnim(sec: real): EmptyAnimation;
// -----------------------------------------------------
//>> Graph3D: функции для определения ближайших точек и объектов # Graph3D functions for nearest points and objects
// -----------------------------------------------------
/// Создаёт траекторию в виде массива точек, заданную параметрически. Функция fun отображает параметр t на координаты точки в пространстве
function ParametricTrajectory(a,b: real; N: integer; fun: real->Point3D): sequence of Point3D;
/// Возвращает ближайший 3D-объект, который пересекает луч, выпущенный из камеры и проходящий через точку (x,y) экрана
function FindNearestObject(x, y: real): Object3D;
@ -3419,6 +3422,8 @@ function Triangle(p1, p2, p3: Point3D; m: Material): TriangleT := Inv(()->Triang
// Функции для точек, лучей, прямых, плоскостей
function ParametricTrajectory(a,b: real; N: integer; fun: real->Point3D) := PartitionPoints(a,b,N).Select(fun);
function FindNearestObject(x, y: real): Object3D;
begin
Result := nil;

View file

@ -0,0 +1,3 @@
begin
System.Threading.Tasks.Task.Run&<string>(nil);
end.

View file

@ -2325,15 +2325,22 @@ namespace PascalABCCompiler.TreeConverter
var kres = funcs.Select(f => get_type(f.parameters[i].type).GetGenericArguments()[cnt - 1]).ToArray();
//if (funcs[0].is_extension_method)
var fldiResType = funcs[0].is_extension_method ? // странно, но всегда кво параметров в syntax_nodes_parameters на 1 меньше. Иначе падает
((syntax_nodes_parameters[i - 1] as SyntaxTree.function_lambda_definition).RealSemTypeOfResult as compiled_type_node).compiled_type :
((syntax_nodes_parameters[i - 1] as SyntaxTree.function_lambda_definition).RealSemTypeOfResult as compiled_type_node).compiled_type;
// Две последние строчки одинаковы. Это странно
Type fldiResType = null;
if (funcs[0].is_extension_method)
{
fldiResType = ((syntax_nodes_parameters[i - 1] as SyntaxTree.function_lambda_definition)?.RealSemTypeOfResult as compiled_type_node)?.compiled_type;
}
else
{
fldiResType = ((syntax_nodes_parameters[i] as SyntaxTree.function_lambda_definition)?.RealSemTypeOfResult as compiled_type_node)?.compiled_type;
}
// странно, но всегда кво параметров в syntax_nodes_parameters на 1 меньше. Иначе падает
// Получается, что fldiResType рассчитывается только если фактическими функциональными параметрами выступают лямбда-выражения. Если имена функций - это не сработает. Это - ОШИБКА!
for (int n = 0; n < bools.Count; n++)
{
if (!fldiResType.Equals(kres[n]))
if (fldiResType == null || !fldiResType.Equals(kres[n]))
bools[n] = false;
}
}

View file

@ -92,7 +92,7 @@ type
// -----------------------------------------------------
///!#
/// Класс списка графических объектов
ObjectsType = class//(IEnumerable<ObjectWPF>)
ObjectsType = class(IEnumerable<ObjectWPF>)
private
l := new List<ObjectWPF>;
d := new Dictionary<FrameworkElement,ObjectWPF>;
@ -130,14 +130,14 @@ type
property Items[i: integer]: ObjectWPF read GetItem write SetItem; default;
function Seq: sequence of ObjectWPF := l;
{function GetEnumerator: IEnumerator<ObjectWPF>;
function GetEnumerator: IEnumerator<ObjectWPF>;
begin
Result := l.GetEnumerator;
end;
function System.Collections.IEnumerable.GetEnumerator: System.Collections.IEnumerator;
begin
Result := l.GetEnumerator;
end;}
end;
end;

View file

@ -1,18 +1,3 @@
[Left/Команды Робота/Команда перемещения влево]
Left;
[Right/Команды Робота/Команда перемещения вправо]
Right;
[Up/Команды Робота/Команда перемещения вверх]
Up;
[Down/Команды Робота/Команда перемещения вниз]
Down;
[Paint/Команды Робота/Команда закрашивания текущей клетки]
Paint;
[Новая программа/Основное/Шаблон новой программы]
begin
|
@ -72,3 +57,4 @@ until условие;
case | of
• : …;
end;