Skip to content

Commit 17f7bf3

Browse files
committed
OpenGL.pas
1 parent 0805946 commit 17f7bf3

File tree

6 files changed

+3712
-4
lines changed

6 files changed

+3712
-4
lines changed

ReleaseGenerators/RebuildStandartModules.pas

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
DrawManField, Events, FilesOperations, GraphABC,
55
GraphABCHelper, IniFile, PointerTools, PointRect, PT4, Robot, RobotField,
66
RobotTaskMaker, RobotZadan, Sockets, Utils, VCL, Timers, PT4Exam, PT4TaskMakerNET, RBDMUtils,
7-
Collections, Arrays, Core, FormsABC, MPI, ClientServer;
7+
Collections, Arrays, Core, FormsABC, MPI, ClientServer, OpenGL;
88

99
begin
1010
writeln(cos(pi));

ReleaseGenerators/sect_Core.nsh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@
9999
File ..\bin\Lib\Core.pcu
100100
File ..\bin\Lib\MPI.pcu
101101
File ..\bin\Lib\ClientServer.pcu
102+
File ..\bin\Lib\OpenGL.pcu
102103
File ..\bin\Lib\PABCRtl.dll
103104
File ..\bin\Lib\PABCRtl32.dll
104105

@@ -143,6 +144,7 @@
143144
${AddFile} "Core.pcu"
144145
${AddFile} "MPI.pcu"
145146
${AddFile} "ClientServer.pcu"
147+
${AddFile} "OpenGL.pcu"
146148
${AddFile} "PABCRtl.dll"
147149
${AddFile} "PABCRtl.pdb"
148150
Push "Lib\PABCRtl.dll"
@@ -188,6 +190,7 @@
188190
File ..\bin\Lib\Core.pas
189191
File ..\bin\Lib\MPI.pas
190192
File ..\bin\Lib\ClientServer.pas
193+
File ..\bin\Lib\OpenGL.pas
191194
File ..\bin\Lib\__RedirectIOMode.vb
192195
File ..\bin\Lib\VBSystem.vb
193196

@@ -231,6 +234,7 @@
231234
${AddFile} "Core.pas"
232235
${AddFile} "MPI.pas"
233236
${AddFile} "ClientServer.pas"
237+
${AddFile} "OpenGL.pas"
234238
${AddFile} "__RedirectIOMode.vb"
235239
${AddFile} "VBSystem.vb"
236240

TestSuite/generics9.pas

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
function f<T>(t1: T): array of T;
2+
where T: System.IComparable<T>; forward;
3+
4+
function f<T>(t1: T): array of T;
5+
begin
6+
var t2: T;
7+
t2 := t1;
8+
Result := new T[1];
9+
Result[0] := t1;
10+
end;
11+
12+
begin
13+
var arr := f(2);
14+
assert(arr[0] = 2);
15+
end.

TreeConverter/TreeConversion/compilation_context.cs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3169,18 +3169,21 @@ private bool check_unique_or_predefined(common_function_node fn)
31693169
{
31703170
for (int i = 0; i < fn.generic_params.Count; ++i)
31713171
{
3172+
fn.generic_params[i] = compar.generic_params[i] as common_type_node;
31723173
common_type_node t_fn = fn.generic_params[i] as common_type_node;
31733174
common_type_node t_compar = compar.generic_params[i] as common_type_node;
3174-
t_fn.is_class = t_compar.is_class;
3175+
/*t_fn.is_class = t_compar.is_class;
31753176
t_fn.internal_is_value = t_compar.internal_is_value;
31763177
t_fn.SetImplementingInterfaces(t_compar.ImplementingInterfaces);
31773178
(t_fn.Scope as SymbolTable.IInterfaceScope).TopInterfaceScopeArray =
31783179
(t_compar.Scope as SymbolTable.IInterfaceScope).TopInterfaceScopeArray;
3179-
t_fn.SetBaseType(t_compar.base_type);
3180+
t_fn.SetBaseType(t_compar.base_type);*/
31803181
if (t_compar.has_default_constructor)
31813182
{
31823183
generic_parameter_eliminations.add_default_ctor(t_fn);
31833184
}
3185+
SymbolInfo par_sim_info = fn.scope.FindOnlyInScope(fn.generic_params[i].name);
3186+
par_sim_info.sym_info = fn.generic_params[i] as common_type_node;
31843187
//t_fn.generic_function_container = compar;
31853188
}
31863189
//конверитируем параметры предописания в параметры описания.
@@ -3196,6 +3199,10 @@ private bool check_unique_or_predefined(common_function_node fn)
31963199
{
31973200
compar.return_variable.type = compar.return_value_type;
31983201
}
3202+
}
3203+
foreach (generic_parameter_eliminations gpe in compar.parameters_eliminations)
3204+
{
3205+
31993206
}
32003207
compar.generic_params = fn.generic_params;
32013208
foreach (common_type_node tn in compar.generic_params)

TreeConverter/TreeConversion/syntax_tree_visitor.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13420,7 +13420,8 @@ public override void visit(SyntaxTree.ref_type _ref_type)
1342013420
context.CurrentScope.Find((_ref_type.pointed_to as SyntaxTree.named_type_reference).names[0].name) == null)
1342113421
{
1342213422
//это указатель на тип который еще не описан
13423-
if (!is_direct_type_decl) AddError(new UndefinedNameReference((_ref_type.pointed_to as SyntaxTree.named_type_reference).names[0].name,get_location(_ref_type.pointed_to)));
13423+
if (!is_direct_type_decl)
13424+
AddError(new UndefinedNameReference((_ref_type.pointed_to as SyntaxTree.named_type_reference).names[0].name,get_location(_ref_type.pointed_to)));
1342413425
return_value(GetWaitedRefType((_ref_type.pointed_to as SyntaxTree.named_type_reference).names[0].name, get_location(_ref_type.pointed_to)));
1342513426
}
1342613427
else
@@ -17725,6 +17726,7 @@ internal void LeaveTypeDeclarationsSection()
1772517726
foreach (ref_type_node rtn in WaitedRefTypes.Values)
1772617727
CheckForCircularityInPointers(rtn, rtn.pointed_type,rtn.loc);
1772717728
ProcessRefTypesForCheckPointersTypeForDotNetFramework();
17729+
WaitedRefTypes.Clear();
1772817730
}
1772917731

1773017732
internal void ProcessCheckPointersInRecord()

0 commit comments

Comments
 (0)